您的位置:首页 > 编程语言 > Python开发

Python的上下文管理器

2016-06-18 22:21 381 查看
class FileMag():

    def __init__(self,filename):

        self.filename=filename

        self.f=None

    def __enter__(self):

        self.f=open(self.filename,encoding="utf-8")

        return  self.f

    def __exit__(self, exc_type, exc_val, exc_tb):

        if self.f:

            self.f.close()

if __name__=="__main__":

    with FileMag("a10_4.py") as book:

        for i in book.readlines():
            print(i)

定义一个管理文件资源对象的上下文管理器类,在进入时打开文件,退出时关闭文件,然后用with语句来使用这个上下文管理器,打开一个指定的文件,并输出其中的内容。

在每次使用时都不用重新打开和关闭文件。

其中在Python中实现上下文管理器的模块中还有

import contextlib

@contextlib.contextmanager

def ga(s,e):

    print(s)

    print(s+" "+e)

    print(e)

if __name__=="__main__":

    with ga("Start","End") as val:

        print(val)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: