Python yield关键字
时间:2020-02-23 14:43:42 来源:igfitidea点击:
今天,我们将学习python yield关键字。
Python yield的用途几乎与return关键字相同,除了它逐一返回值。
当您需要返回大量值时,此关键字非常有用。
Python yield
python yield关键字只有一种用法,即用yield语句替换函数的return语句。
当我们这样做时,该函数称为生成器。
我们已经有一个有关生成器的教程。
您可以看看python生成器。
Python yield示例
正如我之前所说,收益率是收益的替代。
因此,yield语句写在函数体中。
让我们看看如何使用yield:
# defining the function that will have some yield statement def yieldStatement(): yield 'Statement 1' yield 'Statement 2' yield 'Statement 3' # getting the statements statements = yieldStatement() # for each statements that are yielded will be printed for s in statements: print(s)
这将输出:
Statement 1 Statement 2 Statement 3
如果您注意的话,您会发现我们正在使用for循环查看所有值。
这意味着该函数返回可迭代的内容。
这就是为什么我们可以迭代并打印值的原因。
当我们使用yield时,第一个yield值可以被迭代一次,以此类推,所有值可以被迭代一次。
一旦我们迭代了所有的yield值,就无法返回。
您可以通过使用for循环再次打印语句值来检查它。
它不会输出任何内容。
这意味着它在我们迭代时正在执行。
迭代之后,不存在任何内容。
这样可以节省存储空间。
使用yield的简单示例
我们还可以使用不同的循环编写尽可能多的yield语句。
假设我们要编写一个将提供一些值的函数。
然后该函数将每个值乘以5,然后返回所有结果。
为此,我们来看以下示例:
# the function that will multiply each element by 5 def multiplyByFive(*kwargs): for i in kwargs: yield i * 5 a = multiplyByFive(4, 5, 6, 8) # showing the values for i in a: print(i)
现在,将作为参数给出的每个元素乘以5。
Python输出产生器
在上面的示例中定义的函数称为yield生成器。
您可以通过打印命令检查如下:
# the function that will multiply each element by 5 def multiplyByFive(*kwargs): for i in kwargs: yield i * 5 a = multiplyByFive(4, 5, 6, 8) print(a)
这将输出:
<generator object multiplyByFive at 0x02CF7090 >