if __name__ == "__main__": class Node: def __init__(self, value): self._value = value self._children = [] def __repr__(self): return 'Node({!r})'.format(self._value) def add_child(self, node): self._children.append(node) # 对象的内置iter方法,在迭代对象的时候将迭代请求转发,返回children的迭代器对象 # iter函数和len函数一样,底层原理都是返回对象的底层方法,iter返回对象的__iter__() def __iter__(self): return iter(self._children) root = Node(0) child1 = Node(1) child2 = Node(2) root.add_child(child1) root.add_child(child2) for ch in root: print(ch)