python生成器的原理探究
本文教程操作環境:windows7系統、Python 3.9.1,DELL G3電腦。
1、概念
生成器是透過使用yield語句而不是return語句定義一個普通函式來建立的。如果函式包含至少一個yield語句,它就成為一個生成器函式。yield和return都將從函式返回一些值。函式在執行return時終止,而yield語句暫停函式,儲存它的所有狀態,然後在後續呼叫時繼續執行。
2、組成
至少有一個yield語句。
返回一個物件(迭代器),但不立即開始執行。
記住連續呼叫之間的區域性變數及其狀態。
實現迭代協議。
3、原理分析
下面是使用生成器的類似內容。可以發現,呼叫__iter__()和__next__()都是由生成器自動處理的:
# Generator for next power of two. def NextPowTwo(max_ele): n = 0 while n < max_ele: yield 2 * n n += 1 raise StopIteration obj = NextPowTwo(20) print (obj.next()) print (obj.next()) print (obj.next()) print (obj.next())
在對於python學習的時候,容易把生成器與別的知識點混淆,其實想要判斷有個最簡單的方法,看看是否使用yield函式就知道了。
以上就是python生成器的原理探究,相信現在已經能夠透過yield來明確生成器的使用了。同時我們可以發現,生成器在自動處理呼叫上是非常好用的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4328/viewspace-2830842/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python字串駐留的原理探究Python字串
- 探究Spring原理Spring
- dotnet 探究 SemanticKernel 的 planner 的原理
- Python的生成器Python
- PHP yield from 生成器用法探究 (二)PHP
- zookeeper使用和原理探究
- RunLoop底層原理探究OOP
- PHP yield 協程 生成器用法探究 (一)PHP
- 【瀏覽器】渲染原理探究瀏覽器
- iOS底層原理探究-RunloopiOSOOP
- iOS底層原理探究-RuntimeiOS
- 底層原理探究(二)RunLoopOOP
- Promise原理探究及實現Promise
- Jackson原理探究—Mixins其一
- Python 生成器Python
- python生成器Python
- python中生成器的使用Python
- [譯]瀏覽器工作原理探究瀏覽器
- 探究Hybrid-APP技術原理APP
- 從零實現DNN 探究梯度下降的原理DNN梯度
- UITableView的原理——探究及重新實現程式碼UIView
- MG--探究KVO的底層實現原理
- python中切片的淺複製探究Python
- iOS底層原理 - Block本質探究iOSBloC
- python是如何實現生成器的Python
- python生成器函式的特點Python函式
- 解析python生成器函式的呼叫Python函式
- python如何建立遞增的生成器Python
- python 生成器&迭代器Python
- python跳坑---生成器Python
- 如何使用python生成器Python
- Python迷宮生成器Python
- 來來來,探究一下CommonJs的實現原理JS
- python迭代器和生成器的總結Python
- python多程式取代多執行緒的探究Python執行緒
- Python迭代器與生成器Python
- Python3 生成器解析Python
- python進階(11)生成器Python