为什么叫生成器函数?因为它随着时间的推移生成了一个数值队列。一般的函数在执行完毕之后会返回一个值然后退出,但是生成器函数会自动挂起,然后重新拾起急需执行,他会利用yield关键字关起函数,给调用者返回一个值,同时保留了当前的足够多的状态,可以使函数继续执行,生成器和迭代协议是密切相关的,迭代器都有一个__next__()__成员方法,这个方法要么返回迭代的下一项,要买引起异常结束迭代。
#函数有了yield之后,函数名+()就变成了生成器
#return在生成器中代表生成器的中止,直接报错
#next的作用是唤醒并继续执行
#send的作用是唤醒并继续执行,发送一个信息到生成器内部
'''生成器'''
defcreate_counter(n):
print("create_counter")
whileTrue:
yieldn
print("incrementn")
n+=1
gen=create_counter(2)
print(gen)
print(next(gen))
print(next(gen))
结果:
create_counter
2
incrementn
3
Processfinishedwithexitcode0
以上内容为大家介绍了python生成器函数,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。http://www.mobiletrain.org/