python如何使用__iter__()展现外部状态
python如何使用__iter__()展现外部状态
(推荐操作系统:windows7系统、Python3.9.1、DELLG3电脑。)
1、如果你想让你的生成器暴露外部状态给用户,别忘了你可以简单的将它实现为一个类,然后把生成器函数放到__iter__()方法中过去。比如:
fromcollectionsimportdeque
classlinehistory:
def__init__(self,lines,histlen=3):
self.lines=lines
self.history=deque(maxlen=histlen)
def__iter__(self):
forlineno,lineinenumerate(self.lines,1):
self.history.append((lineno,line))
yieldline
defclear(self):
self.history.clear()
2、为了使用这个类,你可以将它当做是一个普通的生成器函数。然而,由于可以创建一个实例对象,于是你可以访问内部属性值,比如history属性或者是clear()方法。代码示例如下:
withopen('somefile.txt')asf:
lines=linehistory(f)
forlineinlines:
if'python'inline:
forlineno,hlineinlines.history:
print('{}:{}'.format(lineno,hline),end='')
以上就是python使用__iter__()展现外部状态的方法,希望能对大家有所帮助。更多Python学习教程请关注IT培训机构:开发教育。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!