一、yield关键字的特点
(1)含有yield关键字的函数,会被认为是一个生成器(generator)
(2)当执行到yield p语句的时候,函数会立即返回p值,并且整个生成器处于暂停状态,并跳出当前函数,返回到调用p值的语句
(3)当再次执行到这个含有yield语句的生成器函数时,会自动立即从上次暂停的位置继续执行,也就是从yield p这个语句的下一条语句继续执行;
# 用于生成无穷序列的示例
def genera_infi(n):
while True:
yield n
n += 1
for x in genera_infi(1):
print(x)
示例中:的解释
for语句为循环语句,
当n为1时,进入genera_infi函数,执行到yield n,返回1,并暂停;此时打印1;
for循环继续执行,则从上次暂停的yield语句处继续执行,n =2,由于while 无线循环,因此再次执行到yield,返回2;
以此类推;