は、取得の2つのスタイルがサポートされています:明示的および暗黙的な取得を。
属性がオブジェクトから、または継承によって直接得ることができないときはいつでも、それは自動的に環境からの属性を検索するための暗黙的な取得は、そのように命名されています。
その名がアンダースコアで始まっていない場合は、この属性は、暗黙的に取得することができます。
暗黙的な取得をサポートするために、あなたのクラスがミックスインクラスAcquisition.Implicitから継承する必要があります。
明示的な取得が使用される場合、属性が自動的に環境から得られません。代わりに、メソッドaq_acquireを使用する必要があります。
買収は、Pythonで書かれています。
買収は、動的オブジェクト間で情報を共有するための強力な方法を提供します。 Zopeの2は、セキュリティ、オブジェクトの出版、DTML変数参照を含む、その主な機能の数の取得を使用しています。
買収はまた、問題の多くのクラスの循環参照の問題に対するエレガントなソリューションを提供します。買収は強力ですが、あなたのアプリケーションで取得を使用した場合、あなたは注意する必要があります。
詳細は、特にコンテキストから取得し、格納容器からの取得の間の違いで、複雑な取得することができます。
このリリースの新機能:
この純粋なPython買が協調使用するオブジェクトしますCの実装のようなスーパー__getattribute__方法。
純粋なPythonの暗黙の取得ラッパーはラップされたオブジェクトは、オブジェクト.__のgetAttributeの__(自己、名)を使用することができます。これは、Cの実装とは異なりますが、永続的のようなライブラリの純粋なPythonのバージョンとの互換性のために重要です。
このバージョン4.2.1の新機能である:試験は、ソースのチェックアウトの外で実行されたときに
このreadme.rstテストをスキップします。
このバージョン4.2の新機能である:試験は、ソースのチェックアウトの外で実行されたときに
このreadme.rstテストをスキップします。
このバージョン4.1の新機能である:試験は、ソースのチェックアウトの外で実行されたときに
このreadme.rstテストをスキップします。
このバージョン4.0a1の新機能:
このRuntimeErrorを送出:再帰は、その元のオブジェクトへの転換点でラッパーへの__parent__ポインタポイントを持つオブジェクト場合取得ラッパーで検出されました。
明示的または暗黙的な基本クラスから派生型の__parent__アクセスしている間に作成されるラッパーを防ぎます。
このバージョン2.13.8の新機能です:取得ラッパーのaq_acquireメソッドへの明示的な引数を提供するときます。
は、64ビットプラットフォームでセグメンテーションフォルトを修正しました。
このバージョン2.13.7の新機能です:
このバグを修正:オブジェクトが開封された自己と__str__呼んでいたユニコード(ラップされた)を呼び出し、__unicode__を実装していたのです。
このバージョン2.13.6の新機能です:
このIAcquisitionWrapperにaq_explicitを追加します。
バグを修正(ラップされた)Unicodeがラップされたオブジェクトの__unicode__メソッドを呼び出していませんでした。
このバージョン2.13.5の新機能です:Windowsマシン上で64ビットのPythonに失敗します。
固定ユニットテスト。
このバージョン2.13.4の新機能です。Acquisition.hでます。
固定タイプミス。
このバージョン2.13.3の新機能です:
この標準ライブラリからのdoctestモジュールを使用し、もはやzope.testingに依存しません。
このバージョン2.13.2の新機能:
この両方のラッパークラスを失敗し、一人で_p_oidを使用して永続的な参照を作成するには、ZODBの最適化の原因となる__getnewargs__方法を与えます。これは、ラップされたオブジェクトの永続的なOIDであることを起こります。これは、彼らがラップ状態にZODBに渡されていても、これらのオブジェクトを正しく永続化することができます。
http://dev.plone.org/plone/ticket/10318のための失敗のテストを追加しました。これは、AQラッパーはcPickleの、inst_persistent_idフックとピクルスプロトコル1とカスタムPicklerさんクラスの特定の組み合わせを使用して漬けすることができ、エッジの場合を示しています。残念ながら、これはZODB3によって使用される正確な組み合わせです。
コメントが見つかりません