存続期間を通じてアクティブな内部データベース接続を持つオブジェクトがあります。プログラムの実行の最後に、接続をコミットして閉じる必要があります。これまで明示的なclose
メソッドを使用してきましたが、これは、特に呼び出し元のコードで例外が発生する可能性がある場合は、やや面倒です。
クロージングの方法を考えてい__del__
ますが、オンラインで読んだ後、心配です。これは有効な使用パターンですか?内部リソースが__del__
正しく解放されることを確認できますか?
この議論は同様の質問を提起しましたが、満足のいく答えは見つかりませんでした。私のオブジェクトはopen-play-closeのように単純に使用されるのではなく、それを使用する別のより大きなオブジェクトのメンバーとして保持されるため、明示的なclose
メソッドは必要ありません。 with
GUIでの実行中。
C ++には、リソースを安全に解放できる完全に機能するデストラクタがあるので、Pythonにも合意されたものがあると思います。何らかの理由でそうではないようで、コミュニティの多くは反対を誓い__del__
ます。では、代替案は何ですか?