码迷,mamicode.com
首页 > 编程语言 > 详细

Python高级语法-私有属性-with上下文管理器(4.7.3)

时间:2019-08-26 14:37:58      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:__exit__   convert   释放   img   orm   mkf   format   对象   ima   

@

1.说明

上下文管理器
这里使用with open操作文件,让文件对象实现了自动释放资源。我们也能自定义上下文管理器,通过__enter__()和__exit__()这两个魔术方法来自定义的操作文件
当有上下文使用的场景的时候,如打开一个东西要关闭,像等文件等资源,就可以使用这种方式去定义一个上下文管理器

2.代码

class File():
    def __init__(self,filename,mode):
        self.filename  = filename
        self.mode = mode

    def __enter__(self):
        print("__enter__")
        self.f = open(self.filename,self.mode,encoding="utf-8")
        return self.f

    def  __exit__(self, exc_type, exc_val, exc_tb):
        print("__exit__")
        self.f.close()


with File("魔方方法.py","r") as f:
    print(f.read())

关于作者

个人博客网站
个人GitHub地址
个人公众号:
技术图片

Python高级语法-私有属性-with上下文管理器(4.7.3)

标签:__exit__   convert   释放   img   orm   mkf   format   对象   ima   

原文地址:https://www.cnblogs.com/simon-idea/p/11412247.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!