2017-06-19 9 views
0

私はPythonを初めて使いました。私は__delete__メソッドの目的をもっと理解したいと思います。Python:__delete__メソッドの内容

私の場合、ファイルを開くクラスがあり、メソッドにfile.closeメソッドを追加します。これをいいアイデアと考えていますか?あるいは、__delete__は別の方法で使用されていますか?

ドキュメントから、私はそれを正しく使用しているかどうかはわかりません。 http://python-reference.readthedocs.io/en/latest/docs/dunderdsc/delete.html

+3

「__delete__」は記述子メソッドの1つです。おそらくあなたは '__del__'を望んでいるでしょうか? – vaultah

+0

@vaultahドキュメントへのリンクを追加しました。もう一度私はPythonで新しくなったので、__delete__が何をするのか理解したいだけです。 __del__は何ですか? –

+1

'__delete__'はディスクリプタプロトコルの一部です。あなたはディスクリプタを書いていますか? –

答えて

2

経験則:リソース管理用のデストラクタを使用する場合は、そうしないでください。それは予測不可能で信頼できないものです。

あなたのオプション:

  • スコープが終了したときに確定リソースを解放する(contextlibを参照)コンテキストマネージャを使用してください。
  • リソースへのweak referencesexit hookの舞台裏のリストを使用します。プログラムの終了のほとんどの場合に機能します。
関連する問題