with使用场景
- 文件读取和关闭
- 数据库连接和断开
- 线程上锁和解锁
- 处理异常(待研究)
class TestFunc():
def __init__(self, var_a, var_b):
self.var_a = var_a
self.var_b = var_b
print("这里将会第一个执行, 初始化类")
def __enter__(self):
print("这里将会第二个执行, 打开管理器,并将对象赋值给test_obj")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print(exc_type)
print(exc_val)
print(exc_tb)
print("这里将会第四个执行, __exit__在程序最后被执行")
return True
def test(self):
print("这里将会第三个执行")
# 这里将会报错,将会执行__exit__方法
a = "a" + 1
return self
# 可以在进入视图后 替代tyr和except, 在额__exit__方法中编辑服务器错误,状态吗
with TestFunc(1, 2) as test_obj:
test_obj.test()