Python 中,生成器(Generator)是一种特殊的迭代器,它可以通过函数来创建。生成器函数使用 yield
关键字来产生一个值,并且在每次调用 yield
时暂停执行,保留函数的状态,以便下次调用时可以从上次暂停的地方继续执行。
生成器具有以下特点:
- 生成器函数使用 def 关键字定义,但是它们的执行方式与普通函数不同。当生成器函数被调用时,它返回一个生成器对象,而不是立即执行函数体。
- 生成器对象是可迭代的,可以在循环中使用,并且可以通过调用 next() 函数来获取下一个值。每次调用 next() 函数时,生成器函数会从上次暂停的地方继续执行,直到遇到下一个 yield 语句。
- 生成器函数可以使用 yield 语句产生一个值,并将该值返回给调用者。生成器函数可以多次使用 yield 语句来产生多个值。
如何创建和使用生成器:
def my_generator():
yield 1
yield 2
yield 3
yield 4
yield 5
# 创建一个生成器对象
my_generator_obj = my_generator()
# 使用循环遍历生成器中的值
for item in my_generator_obj:
print(item)
使用 Python 内置的 next() 函数获取生成器中的下一个值
def my_generator():
yield 1
yield 2
yield 3
yield 4
yield 5
my_generator_obj = my_generator()
print(next(my_generator_obj)) # 1
print(next(my_generator_obj)) # 2
print(next(my_generator_obj)) # 3
print(next(my_generator_obj)) # 4
print(next(my_generator_obj)) # 5
在上面的示例中,我们定义了一个名为 my_generator()
的生成器函数。该函数使用 yield
语句产生了五个值。我们通过调用 my_generator()
函数来创建一个生成器对象 my_generator_obj
,然后使用循环遍历生成器中的值,或者使用 next()
函数获取生成器中的下一个值。
生成器非常适合处理大量数据或者需要逐步生成结果的情况,因为它们可以节省内存,并且可以按需生成数据。
标签:函数,generator,Python,生成器,yield,next,my From: https://blog.51cto.com/u_16181955/7272595