关闭 Python 对象使用的 psycopg2 连接的首选方法是什么?

What's the preferred way to close a psycopg2 connection used by Python object?

我在 Python class 的 __init__ 方法中创建了一个数据库连接,并希望确保连接在对象销毁时关闭。
看起来我可以在 __del__() 中执行此操作,或者使 class 成为上下文管理器并在 __exit__() 中关闭连接。不知道哪个更Pythonic.

It looks like I can do this in __del__() or make the class a context manager and close the connection in __exit__(). I wonder which one is more Pythonic.

我不会评论更多 "pythonic",因为这是一个 高度 主观问题。

然而,Python 并没有对何时调用析构函数做出非常严格的保证,使得上下文/__exit__ 接近正确的位置。