這篇文章主要介紹python中怎么使用__iter__()展現(xiàn)外部狀態(tài),文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)公司堅信:善待客戶,將會成為終身客戶。我們能堅持多年,是因為我們一直可值得信賴。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。10年網(wǎng)站建設經(jīng)驗創(chuàng)新互聯(lián)公司是成都老牌網(wǎng)站營銷服務商,為您提供成都網(wǎng)站制作、做網(wǎng)站、網(wǎng)站設計、H5響應式網(wǎng)站、網(wǎng)站制作、品牌網(wǎng)站建設、微信小程序定制開發(fā)服務,給眾多知名企業(yè)提供過好品質的建站服務。
python的數(shù)據(jù)類型:1. 數(shù)字類型,包括int(整型)、long(長整型)和float(浮點型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運算,有兩個值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數(shù)據(jù)類型,集合中可以放任何數(shù)據(jù)類型。5. 元組,元組用”()”標識,內部元素用逗號隔開。6. 字典,字典是一種鍵值對的集合。7. 集合,集合是一個無序的、不重復的數(shù)據(jù)組合。
1、如果你想讓你的生成器暴露外部狀態(tài)給用戶, 別忘了你可以簡單的將它實現(xiàn)為一個類,然后把生成器函數(shù)放到 __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、為了使用這個類,你可以將它當做是一個普通的生成器函數(shù)。然而,由于可以創(chuàng)建一個實例對象,于是你可以訪問內部屬性值,比如 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__()展現(xiàn)外部狀態(tài)”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!