Administrator
Administrator
发布于 2026-03-21 / 5 阅读
0
0

关于python的yield用法

最近看一些python的代码,经常会出现yield,该关键字可以创建生成器,它的核心作用是让函数能够暂停执行并且返回一个值,然后在下次调用的时候从暂停的地方继续执行。也就是说函数执行到yield的地方,会暂时挂起,等待下次唤醒后继续执行。我们看个栗子

# 普通函数,一次性返回所有结果
def normal_function():
	result = []
	for i in range(5):
		result.append(i)
	return result
print(normal_function()) # [0,1,2,3,4]一次性全部输出

# 生成函数 - 使用yield,逐个产生结果
def generator_function():
	for i in range(5):
		yield i
gen = generator_function()
print(gen) # 输出 <generator object generator_function at 0x100303a50>,暂时挂起
print(next(gen)) # 再次触发,0
print(next(gen)) # 再次触发,1
print(list(gen)) # 再次触发【2, 3, 4]


评论