汕尾海湾 发表于 2024-8-8 17:10:21

python的__enter__和__exit__

__enter__ 是 Python 的一种特殊方法,通常与上下文管理器 (context manager) 一起使用。上下文管理器提供了一种简便的方式来管理资源,比方文件、网络连接和锁等,它们需要在使用后进行清理或释放。
上下文管理器的典范用法是使用 with 语句。在 with 语句块开始时,会调用上下文管理器对象的 __enter__ 方法;在 with 语句块竣事时,无论是否发生异常,都会调用 __exit__ 方法。
具体作用如下:

[*] __enter__ 方法:

[*]当进入 with 语句块时,Python 会调用上下文管理器对象的 __enter__ 方法。
[*]__enter__ 方法的返回值将绑定到 with 语句中指定的变量(如果有的话)。

[*] __exit__ 方法:

[*]当离开 with 语句块时,Python 会调用上下文管理器对象的 __exit__ 方法。
[*]__exit__ 方法可以处置处罚异常,也可以实行须要的清理操作(如关闭文件或释放资源)。

一个常见的上下文管理器示例是文件操作:
class MyContextManager:
    def __enter__(self):
      print("Entering the context")
      return self

    def __exit__(self, exc_type, exc_val, exc_tb):
      print("Exiting the context")

# 使用自定义上下文管理器
with MyContextManager() as manager:
    print("Inside the with block")
在这个示例中:


[*]__enter__ 方法在进入 with 语句块时被调用,输出 “Entering the context”。
[*]__exit__ 方法在离开 with 语句块时被调用,输出 “Exiting the context”。
[*]with 语句块中的代码会实行 “Inside the with block”。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: python的__enter__和__exit__