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 實現超級瑪麗的介面和狀態機?Python
- python如何呼叫subprocess模組實現外部命令?Python
- [python]有限狀態機(FSM)簡單實現Python
- [譯]Flutter - 使用Provider實現狀態管理FlutterIDE
- 如何使用jstack分析執行緒狀態JS執行緒
- 如何使用 jstack 分析執行緒狀態JS執行緒
- 機械製造行業的現狀如何?發展前景如何?行業
- Flutter如何狀態管理Flutter
- 如何實現Dolphinscheduler YARN Task狀態跟蹤?Yarn
- 如何動態載入外部樣式表
- Python現狀Python
- 使用列舉實現狀態機來優雅你的狀態變更邏輯
- Linux運維技術的現狀如何?Linux如何發展?Linux運維
- 使用有限狀態機原理實現英文分詞分詞
- SICP:賦值和區域性狀態(Python實現)賦值Python
- Python進階如何修改閉包內使用的外部變數?Python變數
- ASP.Net Web 服務 – 如何使用會話狀態ASP.NETWeb會話
- Angular狀態管理的使用Angular
- 物聯網發展現狀分析
- 請問jdon框架如何實現微服務的狀態共享框架微服務
- python設計模式狀態模式Python設計模式
- Python設計模式-狀態模式Python設計模式
- 狀態模式(c++實現)模式C++
- vue的狀態管理實現Vue
- 掃地機器人產業發展現狀及市場發展前景機器人產業
- 有限狀態機(FSM)的使用
- 國產資料庫發展現狀分析資料庫
- 新零售發展現狀剖析
- 中國電影產業發展現狀研究產業
- 論壇樹狀結構的展現
- 如何快速取得一個二進位制狀態的所有子狀態
- python設計模式【9】-狀態模式Python設計模式
- Python: 攜帶狀態的閉包Python
- 使用 Hooks 實現一個簡單的狀態管理器Hook
- 使用C# (.NET Core) 實現狀態設計模式 (State Pattern)C#設計模式
- Win10如何使用ipconfig檢視網路狀態Win10
- 如何偵查SQL執行狀態SQL