3

__init__()はPythonクラスで関数をよく使用して、クラスが最初に呼び出されたときに設定を行います。

スクリプトがシャットダウンしているときに呼び出される同等の関数はありますか?

4

1 に答える 1

6

__del__オブジェクトがファイナライズされたときに呼び出されるメソッドがあります。__del__ただし、Python は、インタープリターが終了したときにオブジェクトに対して実際に呼び出されることを保証しません。

いくつかの代替手段があります。

  • atexit.register -- ここで、スクリプトの終了時に実行する関数を登録できます
  • コンテキスト マネージャーを作成し、withステートメントを使用します。次に、コンテキストを離れると、コンテキストマネージャーの__exit__メソッドが無条件に呼び出されます。

プログラムを終了するために何か本当に厄介なことをした場合 (たとえば、何らかの方法でセグメンテーション違反を引き起こしたり、 を介して終了した場合os._exit) 、これらのオプションは両方とも失敗します。

于 2013-03-20T13:07:56.480 に答える