Python中yield表示式的使用

2022-05-06 07:21:15 字數 1143 閱讀 3852

關於yield這個表示式,只是在以前用的時候網上搜了幾篇文章看了一下,大概理解如 何去使用,但yield執行原理其實還是不大明白,今天在次總結一下:

#

-*-coding: utf-8 -*-

defyield_test(n):

for i in

range(n):

yield

call(i)

print("i="

,i)

#做一些其它的事情

print("

do something.

")

print("

end.

")

defcall(i):

return i*2

#使用for迴圈

for i in yield_test(5):

print(i,","

)結果:

>>>0 ,

i=0

2,

i= 1

4,

i= 2

6,

i= 3

8,

i= 4do something.

end.

>>>

**示例2:

>>> def

t1():

print'1

'x = yield

'hello

'print'2

', '

x =

', x

y = 5 + (yield

x)

print'3

', '

y =

', y

結果>>> t =t1()

>>>t.next()1'

hello

' >>> t.send(5)

2 x = 5

5>>> t.send(2)

3 y = 7traceback (most recent call last):

file

"", line 1, in

t.send(2)

stopiteration

Python中yield表示式的使用

關於yield這個表示式,只是在以前用的時候網上搜了幾篇文章看了一下,大概理解如 何去使用,但yield執行原理其實還是不大明白,今天在次總結一下 1.如果乙個函式中使用了yield,那麼這個函式就變成了乙個生成器。生成器是可以迭代的,但只可以讀取它一次,因為用的時候才生成。2.生成器能夠迭代是因為...

協程與yield表示式

在函式內,yield語句還可以用作出現在賦值運算子右邊的表示式,例如 def receiver print ready to receive while true n yield print got s n以這種方式使用yield語句的函式稱為協程,它的執行是為了響應傳送給它的值。它的行為也十分類似...

yield表示式, 四種形式

yield表示式,四種形式 a.不接受輸入值或者輸入值是none yield 1 b.接受輸入值 s yield 1 c.接受輸入,但不返回資料,這樣預設返回none s yield d.既不接受輸入,也不返回值,預設返回none yield 第一種 當函式呼叫到yield時,返回yield的右邊經...