定义
上下文:用来表达程序运行状态的概念,对应内存状态
上下文管理器:一个可以在程序中加载独立上下文的对象
代码示例
class DemoClass: #自定义with兼容对象
def __init__(self,name):
self.name = name
def __enter__(self): #重载__enter__()方法
print('进入上下文管理器')
return self
def __exit__(self, exc_type, exc_val, exc_tb): #重载__exit__()方法
print('退出上下文管理器')
def run(self):
print('DemoClass的某个实例对象在运行')
with DemoClass('py123') as d: #执行__enter__()方法,返回引用d
d.run() #执行run()
#退出上下文管理器时,执行__exit__()方法
总结
1、上下文管理器也是一个对象,管理一个独立上下文区域,用with显式创建,进入调用__enter__()方法,退出调用__exit__()方法。
2、上下文管理器与特定对象配合使用,特定对象包括:python支持对象,自定义with兼容对象