我要为自定义系统发育树类实现一个长度方法,以便我们可以在其上调用 len(TreeObject)。一棵树的长度取决于它有多少叶子。叶表示该节点没有子节点。'self.children' 等于该节点子节点的元组(节点,权重)列表。我非常接近我相信:
def __len__(self):
# everytime it reaches the base case I should add 1
if self.isLeaf():
print('base case - reached leaf!')
return 1
for t,w in self.children:
print('not leaf so sent through loop')
numLeaves = len(t)
return numLeaves
代码以正确的次数到达 if 语句,例如,如果长度为 3,则输出“基本情况 - 到达叶子!” 3次分开。我只需要一种将它们加在一起并将其存储在变量中的方法。