日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 中 send的解释

發布時間:2023/12/8 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 中 send的解释 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
def create_num(n):a, b = 0, 1i= 0while i < n:ret= yield aprint("ret的值為:{}".format(ret))a, b = b, a+bi += 1return "-----ok-----"obj = create_num(10)# 使用next函數取值 print(next(obj))# 使用send函數取值并傳入數據:“haha” print(obj.send("haha"))

?

0 ret的值為:haha 1

send函數

  1、說明:除了使用【next】函數可以啟動生成器,還可以使用【send】函數啟動。

  2、特點: ?啟動生成器后,并且發送數據至生成器中

  3、send函數的應用場景:當生成器生成一個新的值時,通過send函數傳遞一個新的參考值,然后根據這個參考值去做事情。

  4、語法:生成器對象.send(參數)

  5、查看send函數的執行流程:

    第一次調用【next】函數時,程序執行到【yield】關鍵字處暫停,并將局部變量a的值返回。返回值為:0

    第二次調用【send】函數時,程序從上一次【yield】關鍵字暫停處開始執行,

    并將send函數傳過來的參數賦值給局部變量ret,然后程序繼續往下執行,

    直到遇到了yield關鍵字,程序暫停,并返回yied關鍵字后面的值給send。


一開始就使用send會報錯

TypeError: can't send non-None value to a just-started generator

報錯原因:這是因為第一次執行生成器是從函數內部的第一行代碼開始執行的。

  而第一行代碼中并未設定一個變量來接收send函數傳遞過來的數據,所以會報錯。

解決方法:

  第一次啟動生成器,使用【next】方法

  第一次啟動生成器,使用【send】方法,并傳遞【None】關鍵字。(一般不使用該方法)

?

?

?

總結

以上是生活随笔為你收集整理的Python 中 send的解释的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。