2024-05-13 05:22:56 发布
网友
有客观的定义吗?它是作为python源代码的片段实现的吗?如果是的话,有人能给出准确的代码行吗?所有语言都有自己的for语句迭代器协议吗?
它位于文档中的here:
需要为容器对象定义一个方法以提供迭代支持:
container.__iter__()
返回迭代器对象。对象需要支持下面描述的迭代器协议。如果容器支持不同类型的迭代,则可以提供其他方法来专门请求这些迭代类型的迭代器。(支持多种迭代形式的对象的一个例子是支持广度优先和深度优先遍历的树结构。)此方法对应于Python/C API中Python对象的类型结构的tp_iter槽。
tp_iter
迭代器对象本身需要支持以下两种方法,这两种方法共同构成迭代器协议:
iterator.__iter__()
返回迭代器对象本身。这是允许容器和迭代器与for和in语句一起使用所必需的。此方法对应于Python/C API中Python对象的类型结构的tp_iter槽。
iterator.next()
从容器中返回下一个项目。如果没有其他项,则引发StopIteration异常。此方法对应于Python/C API中Python对象的类型结构的tp_iternext槽。
tp_iternext
它位于文档中的here:
需要为容器对象定义一个方法以提供迭代支持:
container.__iter__()
返回迭代器对象。对象需要支持下面描述的迭代器协议。如果容器支持不同类型的迭代,则可以提供其他方法来专门请求这些迭代类型的迭代器。(支持多种迭代形式的对象的一个例子是支持广度优先和深度优先遍历的树结构。)此方法对应于Python/C API中Python对象的类型结构的
tp_iter
槽。迭代器对象本身需要支持以下两种方法,这两种方法共同构成迭代器协议:
iterator.__iter__()
返回迭代器对象本身。这是允许容器和迭代器与for和in语句一起使用所必需的。此方法对应于Python/C API中Python对象的类型结构的
tp_iter
槽。iterator.next()
从容器中返回下一个项目。如果没有其他项,则引发StopIteration异常。此方法对应于Python/C API中Python对象的类型结构的
tp_iternext
槽。相关问题 更多 >
编程相关推荐