リファレントがまだ生きているならば、元のオブジェクトは参照オブジェクトの呼び出しで取り出せす。以外の値を与えた場合、オブジェクトをまさに後始末処理しようとするときに呼び出します。唯一のパラメタとして渡されます。リファレントはもはや利用できません。同じオブジェクトに対してたくさんの弱参照を作れます。それぞれの弱参照に対して登録されたコールバックは、もっとも新しく登録されたコールバックからもっとも古いものへと呼び出されます。コールバックが発生させた例外は標準エラー出力に書き込まれますが、伝播されません。メソッドが発生させる例外と完全に同じ方法で処理されます。弱参照はハッシュ可能です。削除された後でもそれらのハッシュ値を保持します。弱参照は等価性のテストをサポートしていますが、順序をサポートしていません。関係なく二つの参照はそれらのリファレントと同じ等価関係を持ちます。リファレントのどちらか一方が削除された場合、参照オブジェクトが同一である場合に限り、その参照は等価です。これはサブクラス化可能な型というよりファクトリ関数です。__callback__¶この読み出し専用の属性は、現在弱参照に関連付けられているコールバックを返します。属性が追加されました。弱参照オブジェクトを明示的な参照外しをしながら利用する代わりに、多くのケースでプロキシを利用することができます。どちらかの型を持ちます。これによって、それらの基本的な変更可能という性質による多くの問題を避けています。辞書のキーとしての利用を妨げます。関数の同じ名前のパラメータと同じものです。リファレントが変更不能型であっても、プロキシはリファレントが消えるという状態の変更があるために、変更可能型です。参照する弱参照とプロキシの数を返します。参照するすべての弱参照とプロキシオブジェクトのリストを返します。weakref.WeakKeyDictionary([dict])¶キーを弱参照するマッピングクラス。キーへの強参照がなくなったときに、辞書のエントリは捨てられます。アプリケーションの他の部分が所有するオブジェクトへ属性を追加することもなく、それらのオブジェクトに追加データを関連づけるために使うことができます。これは属性へのアクセスをオーバーライドするオブジェクトに特に便利です。辞書型の上に作られているので、反復処理を行うときにはサイズ変更してはなりません。「魔法のように」辞書内の要素を消し去ってしまうため、確実なサイズ変更は困難なのです。オブジェクトを返します。値を弱参照するマッピングクラス。値への強参照が存在しなくなったときに、辞書のエントリは捨てられます。辞書型の上に作られているので、反復処理を行うときにはサイズ変更してはなりません。「魔法のように」辞書内の要素を消し去ってしまうため、確実なサイズ変更は困難なのです。メソッドと同じ目的を持つ追加のメソッドを持っています。オブジェクトを返します。要素への弱参照を持つ集合型。要素への強参照が無くなったときに、その要素は削除されます。(つまり、クラスで定義され、インスタンスにあるメソッド)。束縛されたメソッドは短命なので、標準の弱参照では保持し続けられません。ガベージコレクションで回収されるときに呼び出される、呼び出し可能なファイナライザオブジェクトを返します。通常の弱参照とは異なり、ファイナライザは参照しているオブジェクトが回収されるまで必ず生き残り、そのおかげでライフサイクル管理が大いに簡単になります。評価した結果を返します。ガベージコレクション中にファイナライザコールバックが発生させた例外は、標準エラー出力に表示されますが、伝播することはできません。メソッドや弱参照のコールバックが発生させる例外と同じ方法で処理されます。属性が偽に設定されるまで呼び出され続けます。ファイナライザは生成された順序の逆順で呼び出されます。None.alive¶ファイナライザが生きている場合には真、そうでない場合には偽のプロパティです。弱参照オブジェクトのための型オブジェクト。呼び出し可能でないオブジェクトのプロキシのための型オブジェクト。呼び出し可能なオブジェクトのプロキシのための型オブジェクト。weakref.ProxyTypes¶プロキシのためのすべての型オブジェクトを含むシーケンス。これは両方のプロキシ型の名前付けに依存しないで、オブジェクトがプロキシかどうかのテストをより簡単にできます。weakref.ReferenceError¶プロキシオブジェクトが使われても、元のオブジェクトがガベージコレクションされてしまっているときに発生する例外。弱参照この機能の提案と理論的根拠。初期の実装と他の言語における類似の機能についての情報へのリンクを含んでいます。o.do_something_useful()"生存性(liveness)"のテストを分割すると、スレッド化されたアプリケーションにおいて競合状態を作り出します。弱参照が呼び出される前に、他のスレッドは弱参照が無効になる原因となり得ます。上で示したイディオムは、シングルスレッドのアプリケーションと同じくマルチスレッド化されたアプリケーションにおいても安全です。オブジェクトの特殊なバージョンを作成できます。実装で使われており、マップ内の各エントリによるメモリのオーバヘッドを減らしています。した実装は、ある参照に追加情報を関連付けたい場合に便利ですし、リファレントを取り出すための呼び出し時に何らかの追加処理を行いたい場合にも使えます。ob使用例¶この簡単な例では、アプリケーションが以前に参照したオブジェクトを取り出すためにオブジェクトIDを利用する方法を示します。IDを他のデータ構造の中で使うことができ、必要に応じてIDからオブジェクトを取り出せます。Kenny!ファイナライザは直接呼び出すこともできます。ファイナライザはコールバックを最大でも一度しか呼び出しません。メソッドとの比較¶インスタンスが一時ディレクトリを表す、クラスを作成するとします。そのディレクトリは、次のイベントのいずれかが起きた時に、そのディレクトリの内容とともに削除されるべきです。