with

2025.10.15

1.使用`with`语句打开文件时,文件描述符资源的释放由上下文管理协议确保。当离开`with`代码块时,`__exit__`方法会被自动调用,该方法负责关闭文件并释放文件描述符资源,无需依赖垃圾回收机制或显式调用`close()`方法,也不会等到解释器退出。

 

2025.11.6

1.

class MyContext:
    def __enter__(self):
        return self
    def __exit__(self, exc_type, exc_val, exc_tb):
        return True
with MyContext():
    raise ValueError("Error")

with语句的上下文管理器通过__exit__方法处理异常。当__exit__返回True时,with块内引发的异常会被压制而不传播。本代码中,__exit__返回True,因此with块内引发的ValueError被处理,不会抛出任何异常。

posted @ 2025-10-15 21:11  sellingpear  阅读(11)  评论(0)    收藏  举报