python的with和__enter__ __exit__
Posted 沧海一粟,何以久远
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的with和__enter__ __exit__相关的知识,希望对你有一定的参考价值。
__enter__(): 在使用with语句时调用,会话管理器在代码块开始前调用,返回值与as后的参数绑定
__exit__(): 会话管理器在代码块执行完成好后调用,在with语句完成时,对象销毁之前调用
test.txt的内容为hello world!
class Test(object): def __init__(self,name,flag): self.filename = name self.flag = flag def __enter__(self): \'\'\' @summary: 使用with语句是调用,会话管理器在代码块开始前调用,返回值与as后的参数绑定 \'\'\' print "__enter__:Open %s"%self.filename self.f = open(self.filename,self.flag) return self.f def __exit__(self,Type, value, traceback): \'\'\' @summary: 会话管理器在代码块执行完成好后调用(不同于__del__)(必须是4个参数) \'\'\' print "__exit__:Close %s"%self.filename self.f.close() def __del__(self): print "__del__" if __name__ == "__main__": with Test(\'test.txt\',\'r+\') as f: content = f.read() print content print "end"
来源:https://blog.csdn.net/xhw88398569/article/details/48691487
https://www.cnblogs.com/lipijin/p/4460487.html
以上是关于python的with和__enter__ __exit__的主要内容,如果未能解决你的问题,请参考以下文章
python笔记64 - with语法(__enter__和__exit__)
Python进阶-----上下文管理协议(__enter__,__exit)
python __enter__ 与 __exit__的作用,以及与 with 语句的关系