美文网首页
python 实现迭代协议

python 实现迭代协议

作者: 孙广宁 | 来源:发表于2022-05-15 17:16 被阅读0次
4.4 如何实现一个比4.2节简单的迭代方法
class Node:
    def __init__(self,value):
        self.value = value
        self._children =[]

    def __repr__(self):
        return 'Node({})'.format(self.value)

    def add_child(self,node):
        self._children.append(node)

    def __iter__(self):
        return iter(self._children)

    def depth_first(self):
        yield self
        for c in self:
            yield from c.depth_first()

if __name__ == '__main__':
    root = Node(0)
    child1 = Node(1)
    child2 = Node(2)
    root.add_child(child1)
    root.add_child(child2)
    child1.add_child(Node(3))
    child1.add_child(Node(4))
    child2.add_child(Node(5))

    for ch in root.depth_first():
        print(ch)

相关文章

  • 迭代器和生成器 (Iterator & Generator)

    迭代器 迭代器对象要求支持迭代器协议的对象,在Python中,支持迭代器协议就是实现对象的__iter__()和n...

  • 面试题三(3)

    1.什么叫 迭代器?(1)迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会...

  • python 实现迭代协议

    4.4 如何实现一个比4.2节简单的迭代方法

  • Python高级知识点学习(六)

    Python中的迭代协议 迭代协议有两个概念: 可迭代类型(Iterable) 迭代器(Iterator) 迭代器...

  • python迭代器(Iterator)

    迭代器(iterator)是实现了迭代协议(Iteration Protocol)对象。迭代协议包括两个方法: _...

  • 迭代

    哪些是用for循环的类型? 实现了迭代协议的对象 => 什么是迭代协议 凡是实现了迭代协议的对象, 都继承了一个n...

  • Python中的抽象类

    在Python 中一直都在强调鸭子类型,因为很多类都可以通过实现非正式协议来达到某种目的。为了实现迭代(for ....

  • Python开发【模块】:tornado.queues协程的队列

    协程的队列 协调生产者消费者协程. 在Python 3.5,Queue实现了异步迭代器协议, 所以consumer...

  • 迭代器,生成器,装饰器

    迭代器 Python 迭代器(Iterators)对象在遵守迭代器协议时需要支持如下两种方法。iter(),返回迭...

  • Python3 - 实现迭代器协议

    问题 构建一个支持迭代操作的自定义对象,并找到一个能实现迭代协议的简单方法。 解决方案 在一个对象上,实现迭代操作...

网友评论

      本文标题:python 实现迭代协议

      本文链接:https://www.haomeiwen.com/subject/ubfwyrtx.html