### Z8SLacSv.py . at 0x7fe558fca598> <__main__.Tree object at 0x7fe558fcfb70> <__main__.Tree object at 0x7fe558fcfc18> 3 1 <__main__.Tree object at 0x7fe5598725f8> <__main__.Tree object at 0x7fe558fbec88> 2 1 None None 1 1 None None 1 Traceback (most recent call last): File "../decompiler.py", line 219, in tree() File "../decompiler.py", line 61, in tree print(len(t)) File "../decompiler.py", line 56, in __len__ return self.preorder(function=lambda data, d : 1, join=lambda l,r,c : ((0 if l is None else l) + (0 if r is None else r) + c)) File "../decompiler.py", line 20, in preorder l = self.left.preorder(function, depth+1) File "../decompiler.py", line 20, in preorder l = self.left.preorder(function, depth+1) File "../decompiler.py", line 26, in preorder return join(l,r,c) TypeError: 'int' object is not callable ### 7YtNyaTx.py class Tree: def __init__(self, data=None, left=None, right=None): self.left = left self.right = right self.data = data def preorder(self, function=lambda data, d : None, join=lambda l,r,c : None, depth=0): print(join) l = None r = None print(self.left, self.right, self.data) if self.left is not None: l = self.left.preorder(function, depth+1) if self.right is not None: r = self.left.preorder(function, depth+1) c = function(self.data, depth) print(join) print(l,r,c) return join(l,r,c) def inorder(self, function=lambda data, d : None, join=lambda l,r,c : None, depth=0): l = None r = None if self.left is not None: l = self.left.preorder(function, depth+1) c = function(self.data, depth) if self.right is not None: r = self.left.preorder(function, depth+1) return join(l,r,c) def postorder(self, function=lambda data, d : None, join=lambda l,r,c : None, depth=0): l = None r = None c = function(self.data, depth) if self.left: l = self.left.preorder(function, depth+1) if self.right: r = self.left.preorder(function, depth+1) return join(l,r,c) def __len__(self): # def join(left, right, curr): # sum = curr # if left is not None: # sum += left # if right is not None: # sum += right # return sum return self.preorder(function=lambda data, d : 1, join=lambda l,r,c : ((0 if l is None else l) + (0 if r is None else r) + c)) def tree(): t = Tree(3, Tree(2, Tree(1), Tree(4)), Tree(5, Tree(6), Tree(7))) print(len(t))