创新互联Python教程:python如何使用__iter__()展现外部状态

(推荐操作系统:windows7系统、python 3.9.1、DELL G3电脑。)

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比红桥网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式红桥网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖红桥地区。费用合理售后完善,十载实体公司更值得信赖。

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学习指路:创新互联python教程

当前文章:创新互联Python教程:python如何使用__iter__()展现外部状态
分享网址:http://www.shufengxianlan.com/qtweb/news34/64534.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联