您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python的迭代器协议到底是什么?

Python的迭代器协议到底是什么?

它位于这里的文档:

需要为容器对象定义一种方法以提供迭代支持

container.__iter__()

返回一个迭代器对象。需要该对象支持以下所述的迭代器协议。如果容器支持不同类型的迭代,则可以提供其他方法来专门请求那些迭代类型的迭代器。(支持多种形式的迭代的对象的示例可能是同时支持广度优先和深度优先遍历的树结构。)此方法对应tp_iter于Python / C API中Python对象的类型结构的插槽。

需要迭代器对象本身支持以下两种方法,它们共同构成了迭代器协议:

iterator.__iter__()

返回迭代器对象本身。这是必需的,以允许容器和迭代器与for和in语句一起使用。此方法对应tp_iter于Python / C API中Python对象的类型结构的插槽。

iterator.__next__()

从容器返回下一个项目。如果没有其他项目,请引发StopIteration异常。此方法对应tp_iternext于Python / C API中Python对象的类型结构的插槽。

python 2022/1/1 18:35:07 有225人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶