生成器函數與函數的區別


生成器函數嚴格意義來說只是一種形式象函數但世界為生成器的特殊類型,二者相同點如下:
1、二者的定義格式相同,都是使用def語句;
2、二者都可以有return語句,也可以沒有;
3、二者的函數體格式相同。

差異點如下:
1、生成器函數中主要使用yield返回數據,而函數主要使用return返回數據;
2、二者返回值不同,函數可以根據需要返回任何類型,生成器函數執行返回的是一個生成器;
3、函數除非遞歸調用,一般調用一次就執行一次完整邏輯,而生成器函數調用只是執行生成器的定義,返回一個生成器的類型,函數體內的代碼並沒有全部執行;
4、函數執行一次執行完整,生成器可以通過和外部的交互進行多次循環返回數據。
具體關於生成器的知識請參考《神秘而強大的Python生成器精講》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM