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字串
- Python 生成器原理詳解Python
- RAC原理探究
- 探究Spring原理Spring
- exchange partition原理探究
- PHP yield from 生成器用法探究 (二)PHP
- dotnet 探究 SemanticKernel 的 planner 的原理
- RunLoop底層原理探究OOP
- zookeeper使用和原理探究
- Python的生成器Python
- PHP yield 協程 生成器用法探究 (一)PHP
- 【瀏覽器】渲染原理探究瀏覽器
- Promise原理探究及實現Promise
- 底層原理探究(二)RunLoopOOP
- iOS底層原理探究-RunloopiOSOOP
- python中的生成器Python
- python生成器的效率Python
- [譯]瀏覽器工作原理探究瀏覽器
- iOS底層原理探究-RuntimeiOS
- ReentrantLock實現原理深入探究ReentrantLock
- Python 生成器Python
- python生成器Python
- 從零實現DNN 探究梯度下降的原理DNN梯度
- MG--探究KVO的底層實現原理
- UITableView的原理——探究及重新實現程式碼UIView
- python中生成器的使用Python
- 談談Python的生成器Python
- 深入探究Python中的字典容器Python
- 探究Hybrid-APP技術原理APP
- iOS底層原理 - Block本質探究iOSBloC
- Java8 HashMap實現原理探究JavaHashMap
- Python 進階_生成器 & 生成器表示式Python
- Python Generators(生成器)Python
- Python的迭代器和生成器Python
- python中切片的淺複製探究Python
- Jackson原理探究—Mixins其一
- python 生成器&迭代器Python
- 如何使用python生成器Python