首页 > 代码库 > python with原理
python with原理
在python2.5+中可以用with来保证关闭打开的文件
with open(‘hello.txt‘) as f: do some file operations
为什么要引入with呢?
在之前如果要保证关闭文件需要这样:
f = open(‘hello.txt‘)try: do some file operationsfinally: f.close()
为了简化这些操作,pyhton2.5中引入with,在进入with时python会自动调用对象的__enter__ 函数,
离开with时会调用 __exit__ 函数,如下所示。
class SomeThing(object): def __enter__(self): set things up return self def __exit__(self, type, value, traceback): tear things down
是不是很简单?
比如我们可以实现一个自动释放资源的connection类
class Connection(object): def __enter__(self): print ‘enter‘ return self def __exit__(self, type, value, traceback): print ‘exit‘ def say_hi(self): print ‘hello, world‘def open_connection(): return Connection()with open_connection() as conn: conn.say_hi()
程序输出为:
enterhello, worldexit
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。