【发布时间】:2021-01-10 02:04:04
【问题描述】:
我正在实施一个大陆-国家关系类别图
在我的实现中,一个方法add_country(),作为add_country 的参数,我提供了它所属的国家和大陆的名称,例如add_country(Uganda, Africa)。这会添加一个节点 Africa->Uganda。
如果我传递一个类似的函数,第二个参数为0,例如。 add_country(Asia, 0),它应该将第一个参数添加为类别头或父级。
get_country() 方法应返回属于该大陆(或子大陆)的所有国家/地区的名称。
到目前为止,我已经做到了:
class Node:
def __init__(self, val):
self.children = []
self.value = val
def add_child(self, val):
n = Node(val)
self.children.append(n)
def print_stat(self):
print(self.children)
print(self.value)
class CountryTree:
def __init__(self):
self.roots = []
def add_country(self, country, parent):
if parent == None:
root = Node(country)
self.roots.append(root)
else:
par = Node(parent)
par.add_child(country)
def get_country(self, parent):
par = Node(parent)
return par.children
map = CountryTree()
map.add_country('Asia', None)
map.add_country('China', 'Asia')
map.add_country('Russia', 'Asia')
map.get_country('Asia') #Should return China and Russia
但是运行它会返回一个空数组。
【问题讨论】:
-
您需要更详细地描述如何它“不工作”。
-
我已经更新了,先生
-
请提供一个可运行的minimal reproducible example,目前,您的代码会导致来自
map.add_country('China', 'Asia')调用的NameError: name 'category' is not defined— 不是一个空数组。 -
有一个小错字,导致这个错误!,我已经更正了,谢谢
标签: python graph tree categories