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

python知识点:上下文管理器[__enter__ 和 __exit__ ]

2017-03-21 21:55 429 查看
上下文管理器(context manager)是Python2.5开始支持的一种语法,用于规定某个对象的使用范围。一旦进入或者离开该使用范围,会有特殊操作被调用 (比如为对象分配或者释放内存)。它的语法形式是with…as…

with语句

with open('some.txt',"w") as f:
for i in f:
print i


自定义上下文管理器

实现函数enterexit

class Diycontextor:
def __init__(self,name,mode):
self.name = name
self.mode = mode

def __enter__(self):
print "Hi enter here!!"
self.filehander = open(self.name,self.mode)
return self.filehander

def __exit__(self,*para):
print "Hi exit here"
self.filehander.close()

with Diycontextor('py_ana.py','r') as f:
for i in f:
print i


enter()返回一个对象。上下文管理器会使用这一对象作为as所指的变量

参考:

http://kuanghy.github.io/2015/08/08/python-with

http://www.cnblogs.com/vamei/archive/2012/11/23/2772445.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: