i've a problem with python i write this Class
class TNode(object):
def __init__(self, name):
self.name=name
self._children=[]
def add(self, c):
self._children=self._children +[c]
def children(self):
t=[]
for f in self._children:
t+=f
return t
def height(self):
h = 1
for node in self._children:
h = max(h, node.height() + 1)
return h
def count(self):
cnt = 1
for node in self._children:
cnt += node.count()
return cnt
def count_by_name(self, name):
cbn=0
for node in self._children:
cbn+=node.count(name)
return cbn
def paths(self, name):
pset = set()
if self.name == name:
pset.add((name,))
for node in self._children:
for p in node.path(name):
pset.add((self.name,)+p)
return pset
and after write function:
def create_tree(d):
root=TNode(d['name'])
for node in (d['children']):
if len(d['children'])!=0:
child=TNode(node['name'])
tree=root.add(child)
create_tree(node)
return tree
this is the dictionary:
d = {'name':'musica', 'children':
[{'name':'rock', 'children':
[{'name':'origini','children':[]},
{'name':'rock&roll','children':[]},
{'name':'hard rock', 'children':[]}]},
{'name':'jazz', 'children':
[{'name':'origini', 'children':
[{'name':'1900', 'children':
[{'name':'origini','children':[]}]}]},
{'name':'ragtime', 'children':[]},
{'name':'swing', 'children':[]}]}]}
i try to do some operation like: tree.count(), tree.paths() or tree.height() but i have ever the same response 'NoneType' object has no attribute 'count/paths...'
i hope you can help me :)
treeis equal toNone. Look at how you defined tree.