關於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:
>>> deft1():
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的右邊經...