Вам не нужны все геттеры . Вы можете просто использовать методы доступа к объектам, например, tree_a.left_child
. Во-вторых, вы не создали BinaryTree из своих детей, а это значит, что не имеет смысла запускать sum_tree на них. Прочитайте следующий код и убедитесь, что вы понимаете, что происходит.
Уверен, что то, что вы на самом деле хотите, это
class BinaryTree:
def __init__(self, root, left_child=None, right_child=None):
self.root = root
self.left_child = None if not left_child else BinaryTree(*left_child)
self.right_child = None if not right_child else BinaryTree(*right_child)
self.node = [root, left_child, right_child]
def set_root(self, root):
self.root = root
def sum_tree(self):
tree_sum = 0
if self.left_child:
tree_sum += self.left_child.sum_tree()
if self.right_child:
tree_sum += self.right_child.sum_tree()
return tree_sum + self.root
tree_a = BinaryTree(8)
tree_b = BinaryTree(9, [6, [], []], [65, [], []])
print(tree_a.sum_tree())
# 8
print(tree_b.sum_tree())
# 80
print(tree_b.left_child.node)
# [6, [], []]