码迷,mamicode.com
首页 > 其他好文 > 详细

生成器yield(17-06)

时间:2018-09-22 14:50:12      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:print   ccf   自动   ffffff   hello   出现   color   end   必须   

 

yield   执行以上代码,yield后面可以有返回值

next()  获取

next的使用次数,是你生成器中yield出现的次数

def p():
  print("ok")
  yield 18
  print("ok2")
  yield
  
n = p()
ret = next(n)  # 用next()去获取调用者n,遇到yield才执行以上代码后返回
print(ret)
next(n)

# ------------运行结果
# ok
# 18
# ok2

 

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

可以传入参数给yield

但首次传入参数必须是None

send()  传入

当send传入参数后,会自动使用一次next来执行yield以上代码

def s():
  print("AB")
  conn = yield
  print(conn)
  print(‘Hello‘)
  yield
  

n = s()
n.send(None)  # 首次传入必须是None
next(n)
# --------------------运行结果
# AB
# None
# Hello

n = s()
next(n)
n.send(188)
# ---------------------运行结果
# AB
# 188
# Hello

 

生成器yield(17-06)

标签:print   ccf   自动   ffffff   hello   出现   color   end   必须   

原文地址:https://www.cnblogs.com/uncle-kay/p/9689888.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!