Python 编程记录

1. yield

yield 是 Python 中用于定义生成器函数的关键字。生成器函数是一种特殊的函数,它可以暂停执行并保存当前的状态,然后在需要时恢复执行,从而生成一个序列。

当一个函数包含 yield 语句时,它将变成一个生成器函数。每次调用生成器函数时,它会返回一个生成器对象,而不是立即执行函数体内的代码。当你对生成器对象调用 next() 函数时,生成器函数将从上次暂停的位置继续执行,直到再次遇到 yield 语句或者函数结束。

下面是一个简单的示例,演示了 yield 的用法:

def my_generator():
    yield 1
    print("1111")
    yield 2
    print("2222")
    yield 3
    print("3333")

# 调用生成器函数,返回生成器对象
gen = my_generator()

# 通过调用 next() 函数获取生成器对象的值
print(next(gen))  # 输出: 1
print("------------------")
print(next(gen))  # 输出: 2
print("------------------")
print(next(gen))  # 输出: 3
print("------------------")

#输出:
#1
#------------------
#1111
#2
#------------------
#2222
#3
#------------------
#3333

在这个示例中,my_generator 是一个生成器函数,它包含了三个 yield 语句。每次调用 next(gen) 时,生成器函数会执行到下一个 yield 语句处,并将 yield 后面的值返回给调用者。因此,连续调用 next(gen) 三次将依次输出 1、2 和 3。

在上述例子中,print(next(gen)) # 输出: 3执行之后函数my_generator已经执行到了最后一行,如果此时再使用一次print(next(gen))将会报错:StopIteration

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值