版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/reallocing1/article/details/64526895
上下文管理器(context manager)是Python2.5开始支持的一种语法,用于规定某个对象的使用范围。一旦进入或者离开该使用范围,会有特殊操作被调用 (比如为对象分配或者释放内存)。它的语法形式是with…as…
with语句
with open('some.txt',"w") as f:
for i in f:
print i
自定义上下文管理器
实现函数enter和exit
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所指的变量
参考: