知行编程网知行编程网  2022-12-15 03:00 知行编程网 隐藏边栏  1 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python如何使用__iter__()展现外部状态的相关知识,希望可以帮到处于编程学习途中的小伙伴

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学习指路:

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享