《Pyhon入门:yield关键字常用用法》
《Pyhon入门:yield关键字常用用法》
在Python中,yield
和 return
都是用于从函数返回值的关键字,但它们有一些重要的区别。
-
yield
关键字用于在函数中返回一个值,并暂停函数的执行。每次调用生成器时,都会从上次暂停的地方继续执行,直到遇到下一个yield
关键字。生成器函数返回一个生成器对象。例如:def my_generator(): yield 1 yield 2 yield 3 gen = my_generator() print(next(gen)) # 输出: 1 print(next(gen)) # 输出: 2 print(next(gen)) # 输出: 3
在上面的代码中,
my_generator()
是一个生成器函数,使用yield
关键字返回三个值。每次调用next()
函数时,都会从上次暂停的地方继续执行,直到遇到下一个yield
关键字。 -
return
关键字用于从函数返回一个值,并结束函数的执行。当函数执行到return
关键字时,函数会立即返回,不再执行后续的代码。例如:def my_function(): return 1 print(my_function()) # 输出: 1
在上面的代码中,
my_function()
是一个普通函数,使用return
关键字返回一个值。当函数执行到return
关键字时,函数会立即返回,不再执行后续的代码。 -
yield
关键字和return
关键字都可以用于返回值,但yield
关键字返回的是一个生成器对象,而return
关键字返回的是一个具体的值。例如:def my_generator(): yield 1 yield 2 yield 3 def my_function(): return 1 gen = my_generator() print(type(gen)) # 输出: <class 'generator'> print(type(my_function())) # 输出: <class 'int'>
在上面的代码中,
my_generator()
是一个生成器函数,使用yield
关键字返回三个值。my_function()
是一个普通函数,使用return
关键字返回一个值。gen
是一个生成器对象,my_function()
的返回值是一个整数。4.在Python中,
yield from
关键字用于将一个生成器中的所有元素返回给调用者。它允许生成器将生成任务委派给另一个生成器。yield from
关键字的使用方法如下:def gen1(): yield 1 yield 2 yield 3 def gen2(): yield 4 yield 5 yield 6 yield from gen1() for i in gen2(): print(i)
在上述代码中,
gen2()
是一个生成器函数,使用yield from
关键字将gen1()
生成器中的所有元素返回给调用者。yield from gen1()
相当于yield 1 yield 2 yield 3
,yield from gen1()
相当于yield from (1,2,3)
。yield from
关键字和yield
关键字都可以用于返回值,但yield from
关键字返回的是一个生成器对象,而yield
关键字返回的是一个具体的值。例如:def my_generator(): yield 1 yield 2 yield 3 def my_function(): return 1 gen = my_generator() print(type(gen)) # 输出: <class 'generator'> print(type(my_function())) # 输出: <class 'int'>
在上述代码中,
my_generator()
是一个生成器函数,使用yield
关键字返回三个值。my_function()
是一个普通函数,使用return
关键字返回一个值。gen
是一个生成器对象,my_function()
的返回值是一个整数。
以上就是 yield
关键字和 return
关键字的区别。