上下文管理器是一个对象,它定义了在执行 with 语句时要建立的运行时上下文。 上下文管理器处理进入和退出所需运行时上下文以执行代码块。
通常使用 with 语句(在 with 语句中描述),但是也可以通过直接调用它们的方法来使用。
上下文管理器是一个实现了__enter__、__exit__魔法方法的类对象
定义了__enter__、__exit__方法的类对象即可用作上下文管理器
class A: def __init__(self): print("__init__") def __enter__(self): print("__enter__") def __exit__(self, exc_type, exc_val, exc_tb): print("__exit__") if __name__ == "__main__": with A() as f: print("running ...")