Я пишу очень простой класс Tree:Можете ли вы определить несколько разных итераторов для класса Python?
class Tree:
def __init__(self, value_ = None, children_ = None):
self.value = value_
self.children = children_
Я хотел бы быть в состоянии выполнять как DFS и BFS обход с помощью простого цикла, а именно:
t = Tree()
# ...fill tree...
for node in t:
print(node.value)
В C++, например, вы можете иметь несколько типов итераторов - поэтому я мог бы определить как DFS, так и BFS-итератор и использовать тот или иной вариант в зависимости от того, какой тип обхода я хотел сделать. Можно ли это сделать в Python?
'Tree' не является класс. Это функция. Классы определяются следующим образом: 'class Tree (object):' – ozgur
@ozgur: Typo - спасибо за ловлю! – tonysdg
Как бы вы указали, какой тип итераций вы хотите сделать в конкретном случае? – BrenBarn