大约一年前,我的教授向我展示了使用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
.
.
.
有人可以帮我记住,给我一个示例代码,提示或任何有关如何重新创建此代码的内容吗?
答案 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