Существует пример бинарного древовидного класса.Класс поиска двоичного дерева
Сначала я определяю дерево классов.
>>> class Tree(object):
>>> def __init__(self, data=None, left=None, right=None):
>>> self.data = data
>>> self.left = left
>>> self.right = right
>>> def inorder(self):
>>> if self.left:
>>> for x in self.left.inorder():
>>> yield x
>>> yield self
>>> if self.right:
>>> for x in self.right.inorder():
>>> yield x
>>> def __iter__(self):
>>> return self.inorder()
>>> def __repr__(self, level=0, indent=" "):
>>> s = level*indent + `self.data`
>>> if self.left:
>>> s = s + "\n" + self.left.__repr__(level+1, indent) # *** Right this point ***
>>> if self.right:
>>> s = s + "\n" + self.right.__repr__(level+1, indent)
>>> return s
А затем определит функцию "дерево"
>>> def tree(List):
>>> n = len(List)
>>> if n == 0:
>>> return None
>>> i = n/2
>>> return Tree(List[i], tree(List[:i]), tree(List[i+1:]))
Наконец печать бинарного дерева
>>> t = tree('abcdef')
>>> print t
И результат выходит, как показано ниже.
'd'
'b'
'a'
'c'
'f'
'e'
И вопрос, почему не вставляя «себя» в предст метод, где я указать.
self.left является экземпляром, чтобы можно было не поставить «я» в _ repr _method?
заранее спасибо :)