with上下文管理器
利用with语句,实现一个上下文管理类。
import time
class ContextObject(object):
def __init__(self):
pass
def __enter__(self):
print("进入环境!")
def __exit__(self, exc_type, exc_val, exc_tb):
print("退出环境")
# 演示程序
def main():
with ContextObject():
for i in range(3):
time.sleep(1)
print("在环境当中 {}".format(i))
if __name__ == "__main__":
main()
执行结果
进入环境!
在环境当中 0
在环境当中 1
在环境当中 2
退出环境
主要过程
上下文管理的主要用法是对全局状态的恢复和重载,
提供锁和解除锁的功能,关闭已打开的文件。
在__enter__类方法中返回的对象将被绑定到as
进行重命名。
在__exit__类方法中实现环境的恢复。