13 lambda_yield_yieldfrom_coroutine

发电机

协同程序

pythonlambda

λ:

返回λλ

[2]:λx: x * * 2

[2]: & lt;功能的__main__灵活;lambda>在

[3]:(λx: x * * 2) (4) #

[3]: 16

[4]: foo=λx, y: (x + y) * * 2 #

[5]: foo (2, 1)

[5]: 9

[6]: def foo (x, y): #

…:返回(x + y) * * 2

…:foo (2, 1)

…:

[6]: 9

[7]: lst=[a、2、1]

[8]: lst.sort(关键=str) # str

[9]: lst

[9]: [1, 2, ' ']

[10]:λ:0 # 0

[10]: & lt;功能的__main__灵活;lambda>在

[11]:(λx, y=3: x + y) (5)

[11]: 8

[12]:(λx, y=3: x + y) (5、6)

[12]: 11

[13]:(λx * 30: y=x + y) (5)

[13]: 35

[14]:(λx * 30: y=x + y) (5, y=10)

[14]: 15

[15]:(λ* args: (x x args))(*范围(5))#

[15]: & lt;发电机对象& lt; lambda>灵活;locals>灵活;genexpr>在0 x7f892ccaca40>

[16]:(λ* args: [x x args])(*范围(5))#

[16]: [0, 1, 2, 3, 4)

[18]:(λ* args: {x + 2 x在args})(*范围(5))

[18]: {2、3、4、5、6}

[20]: [x x(λ* args:地图(λx: x + 1, args))(*范围(5)))#

[20]: [1、2、3、4、5)

[22]: [x x(λ* args:地图(λx: (x + 1, args), args))(*范围(5)))

[22]:

[(1 (0, 1, 2, 3, 4)),

(2) (0, 1, 2, 3, 4)),

(3) (0, 1, 2, 3, 4)),

(4, (0, 1, 2, 3, 4)),

(5, (0, 1, 2, 3, 4)))

发电机

产量

next ()

yieldyield

收益率returnreturn

returnStopIteration

产量;

下(发电机)yieldnext ()

next()下(g,“结束”)

yieldnext()抛出StopIteration

[23]: def . n:行情)():

…:因为我在范围(5):

…:屈服我#

…:

[24]:类型(inc)

[24]:函数

[25]:类型(inc ())

[25]:发电机

[26]: x=公司()

[27]:类型(x)

[27]:发电机

[28]:下一个(x)

[28]: 0

[29]:在x n:

…:打印(n)

…1:

3

4[30]:在x n:

…:打印(n) #

…:

…:

[39]: y=(我因为我在范围(2))

[40]:类型(y)

[40]:发电机

[41]:下一个(y)

[41]: 0

[42]:下一个(y)

[42]: 1

[43]:下一个(y)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

抛出StopIteration回溯(最近调用最后)

& lt; ipython -输入- 43 - 81 - b9d2f0f16a>在& lt; module> ()

——比;1下一个(y)

抛出StopIteration:

[44]: def gen ():

…:打印(line1)

…产量:1

…:打印(么)

…:收益率2

…:打印(line3)

…:返回3

…:

[45]:下一个(gen ())

line1

[45]: 1

[46]:下一个(gen ())

line1

[46]: 1

[47]: g=gen ()

[48]:下一个(g)

line1

[48]: 1

[49]:下一个(g)

line2

[49]: 2

[50]:下一个(g)

line3

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

抛出StopIteration回溯(最近调用最后)

& lt; ipython-input-50-e734f8aca5ac>在& lt; module> ()

——比;1下(g)

抛出StopIteration: 3

[51]: g=gen ()

[52]:下一个(g)

line1

[52]: 1

[53]:下一个(g)

line2

[53]: 2

[54]: #

line3

[54]:“结束”

[55]:下一个(g,“结束”)

[55]:“结束”

<强> <强> <强> <强> <强>

# # # # # # # # # # # # # #

 <强>  <强>  <强>  <强>  <强>  

 <强>  <强>  <强>  <强>  <强>      

 <强>  <强>  <强>  <强>  <强>  <强>  <强>    

协同程序

python3 asyncio python3.5asyncawait

2 abnext Ayieldnext (A) (B) Byieldnext (A) (B)

产生的python3.3

13 lambda_yield_yieldfrom_coroutine