生成器yield(17-06)

Posted uncle-kay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成器yield(17-06)相关的知识,希望对你有一定的参考价值。

 

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)的主要内容,如果未能解决你的问题,请参考以下文章

关于生成器---(yield)

python生成器中yield和send分析

生成器与yield

生成器与yield

生成器

生成器函数