美文网首页
python __iter()__将迭代委托给内部对象操作

python __iter()__将迭代委托给内部对象操作

作者: 孙广宁 | 来源:发表于2022-05-14 22:53 被阅读0次
4.2 如果我们构建了一个容器对象,里边包含了,列表、元组、或者其它的可迭代对象,如何操作我们自己构建的这个对象
  • 需要在对象内部构建一个iter()方法,将迭代请求委托给对象内部的迭代方法处理
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)

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

if __name__ == '__main__':
    root = Node(0)
    child1 = Node(1)
    child2 = Node(2)
    root.add_child(child1)
    root.add_child(child2)
    for ch in root:
        print(ch)
  • 运行效果如下
Adolph$ python test.py
Node(1)
Node(2)

相关文章

  • python __iter()__将迭代委托给内部对象操作

    4.2 如果我们构建了一个容器对象,里边包含了,列表、元组、或者其它的可迭代对象,如何操作我们自己构建的这个对象 ...

  • 17.Python之迭代器

    Python之迭代器 可迭代对象内部含有__iter__方法的对象,称之为可迭代对象。 通过dir()获取一个对象...

  • Python魔法方法-__iter__,__next__

    __iter__,__next__ __iter__将一个对象变为可迭代对象。__next__将一个对象变为迭代器...

  • python3内置函数

    运行环境:python3.5.4 1.map() " map(func,iter)函数,用来将某个可迭代对象ite...

  • Python迭代器、生成器及yield关键字

    一、迭代 迭代:从对象中,逐个获取元素的过程。 可迭代对象理解:可以进行迭代操作的对象;定义:含有 __iter_...

  • 2-1迭代对象、迭代器、生成器

    可迭代对象、迭代器和生成器的关系 可迭代对象 可迭代对象实现某种接口,对与列表内部实现了__iter__()方法,...

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

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

  • Python : 迭代器Iterators

    Python 迭代器对象需要支持两个方法. iter(),返回迭代器对象自身. 用于for x in 中.nex...

  • Python迭代器

    Python迭代器 一、可迭代对象 判定对象是否为可迭代对象1.检查对象x是否实现了__iter__()方法,如果...

  • python生成器迭代器

    在Python中,迭代器是遵循迭代协议的对象。使用iter()从任何序列对象中得到迭代器(如list, tuple...

网友评论

      本文标题:python __iter()__将迭代委托给内部对象操作

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