原文:Implementing a generator/yield in a Python C extension
在 Python 中,生成器 (generator) 是一个返回迭代器 (iterator) 对象的函数。虽然有很多方法来实现,不过最优雅和常用的形式是使用 yield
语句。
举例来说,这是一个简单的例子:
def pyrevgen(seq): for i, elem in enumerate(reversed(seq)): yield i, elem
这里的 pyrevgen
函数就是一个生成器。给定一个序列,它将会返回一个迭代器用以逆序输出这个串的元素并附上序号。比如说:
>>> for i, e in pyrevgen(['a', 'b ...
There are comments.