2012-03-28 20 views
2

クラスが既に定義された後で、ディスクリプタをどのように関連付けるのですか?Pythonの記述子のメタプログラミング:クラス定義の後に記述子を追加する方法は?

class X: 
    d = Descriptor() 

Descriptor.__get__(self,obj,kls)が呼ばれるたびに、その後、2番目のパラメータはXのインスタンスであり、すべてが幸せで素晴らしいです:私はちょうどこれを行うだろう、通常の記述のシナリオでは

しかし、何X場合

はまだのように定義されています。

class X: pass 

どのように私はその後、事実の後に記述を追加しない(し、適切に機能を持っていますか!)?すべての私の試みは、クラスへの適切な関連付けを得ていません

私はDRYの方法で追加したい属性の束を持っています、私はそれらをcached_properties(私が使用している記述子にしたいそれぞれの値をメモしてください)

答えて

3
X.d = Descriptor() 

これですべてが必要です。

+0

*額をこねる*ありがとうございます! – prior