python如何使用__iter__()展現外部狀態
(推薦作業系統:windows7系統、Python 3.9.1、DELL G3電腦。)
1、如果你想讓你的生成器暴露外部狀態給使用者, 別忘了你可以簡單的將它實現為一個類,然後把生成器函式放到 __iter__() 方法中過去。比如:
from collections import deque class linehistory: def __init__(self, lines, histlen=3): self.lines = lines self.history = deque(maxlen=histlen) def __iter__(self): for lineno, line in enumerate(self.lines, 1): self.history.append((lineno, line)) yield line def clear(self): self.history.clear()
2、為了使用這個類,你可以將它當做是一個普通的生成器函式。然而,由於可以建立一個例項物件,於是你可以訪問內部屬性值,比如 history 屬性或者是 clear() 方法。程式碼示例如下:
with open('somefile.txt') as f:
lines = linehistory(f)
for line in lines:
if 'python' in line:
for lineno, hline in lines.history:
print('{}:{}'.format(lineno, hline), end='')
以上就是python使用__iter__()展現外部狀態的方法,希望能對大家有所幫助。更多Python學習指路:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4687/viewspace-2830542/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 即時通訊發展前景怎麼樣?現在狀態是如何
- python如何呼叫subprocess模組實現外部命令?Python
- 如何用 Python 實現超級瑪麗的介面和狀態機?Python
- [譯]Flutter - 使用Provider實現狀態管理FlutterIDE
- 如何使用jstack分析執行緒狀態JS執行緒
- Python現狀Python
- 如何實現Dolphinscheduler YARN Task狀態跟蹤?Yarn
- Linux運維技術的現狀如何?Linux如何發展?Linux運維
- Python進階如何修改閉包內使用的外部變數?Python變數
- SICP:賦值和區域性狀態(Python實現)賦值Python
- 使用列舉實現狀態機來優雅你的狀態變更邏輯
- Flutter如何狀態管理Flutter
- 機械製造行業的現狀如何?發展前景如何?行業
- python設計模式狀態模式Python設計模式
- python設計模式【9】-狀態模式Python設計模式
- 狀態模式(c++實現)模式C++
- vue的狀態管理實現Vue
- 數字藏品開展現狀(NFT)
- 物聯網發展現狀分析
- 有限狀態機(FSM)的使用
- WPF 視覺狀態VisualState使用視覺
- 使用 Hooks 實現一個簡單的狀態管理器Hook
- 使用C# (.NET Core) 實現狀態設計模式 (State Pattern)C#設計模式
- PIGOSS BSM 如何實現伺服器硬體狀態監控?Go伺服器
- python requests檢測響應狀態碼Python
- 新零售發展現狀剖析
- 2020年Java語言發展現狀Java
- PHP 有限狀態機使用說明PHP
- flutter狀態管理provider的基本使用FlutterIDE
- Flutter狀態管理Provider(四) Selector使用FlutterIDE
- 使用 useState 管理響應式狀態
- python如何使用字典實現switchPython
- 如何使用Python 實現秒錶功能?Python
- nuxt3_使用pinia實現伺服器端渲染狀態管理UX伺服器
- 在 .NET 中使用有限狀態機實現工作流建模 - Lloyd
- 如何使用狀態隨機數和 PKCE 保護 Cognito 登入流程隨機
- 通過Python檢視Azure VM的狀態Python
- Python PyQt顯示臨時狀態訊息PythonQT