千家信息网

Python中yield如何实现迭代器协议

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章将为大家详细讲解有关Python中yield如何实现迭代器协议,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。说明1、yield实现迭代器协议的两种方法__i
千家信息网最后更新 2025年01月19日Python中yield如何实现迭代器协议

这篇文章将为大家详细讲解有关Python中yield如何实现迭代器协议,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

说明

1、yield实现迭代器协议的两种方法__iter__和next(Python 2) 或__next__(Python 3)。

2、这两种方法都使对象成为迭代器。

可以使用模块中的Iterator抽象基类对它进行类型检查collections。

实例

>>> def func():...     yield 'I am'...     yield 'a generator!'...>>> type(func)                 # A function with yield is still a function>>> gen = func()>>> type(gen)                  # but it returns a generator>>> hasattr(gen, '__iter__')   # that's an iterableTrue>>> hasattr(gen, 'next')       # and with .next (.__next__ in Python 3)True

关于"Python中yield如何实现迭代器协议"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

0