yield python

admin 33 0

在Python中,`yield`是一个关键字,用于在函数中定义一个生成器,生成器是一种特殊类型的迭代器,它允许你在需要时才生成值,而不是一次性生成所有值,这使得生成器非常适合处理大量数据或无限数据集,因为它们可以节省内存并提高性能。

下面是一个简单的示例,演示了如何使用`yield`关键字创建一个生成器函数:

def generate_numbers():
    n = 1
    while True:
        yield n
        n += 1

# 创建一个生成器对象
numbers = generate_numbers()

# 迭代生成器对象
for num in numbers:
    print(num)

在上面的示例中,我们定义了一个名为`generate_numbers`的函数,它使用`yield`关键字返回一个数字序列,我们使用`while True`循环来不断生成新的数字,并使用`yield`关键字将它们返回给调用者,每次调用`yield`时,函数将暂停执行并将控制权返回给调用者,当需要下一个值时,调用者可以再次调用该函数。

在示例中,我们创建了一个名为`numbers`的生成器对象,并使用`for`循环迭代它,每次迭代时,生成器将返回下一个数字,直到没有更多数字为止。

需要注意的是,生成器函数只能被调用一次,因为它们会记住上一次返回的值,如果你尝试再次调用生成器对象,它将从上次返回的位置继续执行,而不是从头开始执行。