如何创建一个Iterable函数(或者它被称为)?

时间:2014-03-25 22:13:35

标签: python

大约一年前,我的教授向我展示了使用python制作可迭代函数的方法,但我不记得该怎么做。

我记得它会像函数中的for循环那样会出现break或return或continue关键字,类似于这个伪代码:

def function():
    for i in range(10):
        print i
        break #or whatever the keyword was

在主程序中,它将被写成:

function() #prints 0
function() #prints 1
function() #prints 2
.
.
.

有人可以帮我记住,给我一个示例代码,提示或任何有关如何重新创建此代码的内容吗?

2 个答案:

答案 0 :(得分:4)

您正在寻找yield expressions,在函数中使用时会生成生成器函数

def generator_function():
    for i in range(10):
        yield i

生成函数在调用时会生成迭代器:

for result in generator_function():
    print result

或者您可以使用next() function获取下一个值:

gen = generator_function()
first = next(gen)
second = next(gen)

答案 1 :(得分:3)

你是在谈论发电机吗?

def function():
    for i in range(10):
        yield i # the yield keyword makes it a generator

generator_object = function()

next(generator_object)
# 0 
next(generator_object)
# 1