1. 程式人生 > >生成器yield(17-06)

生成器yield(17-06)

生成 n) col none 是你 style 使用 int 次數

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)