カスタムPhylogeneticTreeクラスのlengthメソッドを実装して、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回別々に。それらを足し合わせて変数に格納する方法が必要です。