抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

with open是python中特别方便的一种写法, 对于支持的函数来说, 有了with这个语句可以很方便的在操作完成时自动关闭对象. 对于自己编写的对象其实也可以实现with语法的支持.

具体的做法就是在自己的class中定义__enter____exit__两个方法:

1
2
3
4
5
6
7
class MyClass(object):
def __init__(self):
pass
def __enter__(self):
print("Start")
def __exit__(self, exc_type, exc_val, exc_tb):
print("End")

如此一来, 在使用with时就会先执行__enter__内的内容, 在代码块结束的时候则自动执行__exit__的内容了.

1
2
3
4
5
6
>>> with MyClass() as tClass:
... print("test")
...
Start
test
End

评论

留下友善的评论吧~