私は非常に単純なツリーのクラスを書いている: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