1
class Cls():

    def __init__(self, start):
        self.value = start


    class Desc():
        def __get__(self, instance ,owner):
            print("In Descriptor's __get__method")
            return self.value
        def __set__(self, instance, start):
            print("In Descriptor's __set__ method")
            self.value = start

    value = Desc()

X = Cls('Hello')
X.value = "Hi"

上記の記述子の実装は私にはわかりません。X.value と Cls.value は同じオブジェクトを参照しており、クラスは str です。Cls.__dict__['value'] は記述子オブジェクトです。名前「値」には 2 つのタイプが割り当てられます。

誰かがこれを説明できますか?. この特定の実装の背後にあるロジックは何ですか。Cls.value または X.value が記述子オブジェクトではない理由。私はpython 3.3を使用しています

4

1 に答える 1