__set__
と記述子を持つことができ、__get__
を使用できないという事実について、どこかで読んでいます。__set__ではなく__get__ではない記述子はどのように機能しますか?
どのように動作しますか?
データディスクリプタとしてカウントされますか?それは非データ記述子ですか?ここで
はコードの例です:あなたが例に与えてくれた
class Desc:
def __init__(self, name):
self.name = name
def __set__(self, inst, value):
inst.__dict__[self.name] = value
print("set", self.name)
class Test:
attr = Desc("attr")
>>>myinst = Test()
>>> myinst.attr = 1234
set attr
>>> myinst.attr
1234
>>> myinst.attr = 5678
set attr
>>> myinst.attr
5678
データモデルに記載されている動作については、Raymondの[how to](https://docs.python.org/2/)に詳しい説明があります。 howto/descriptor.html)ガイドを参照してください。 – wim
@wim実際、この質問を最初に提起した理由は、そこには記載されていないからです。 '__get__'のないデータ記述子は何もありません。それがどのように動作するかを理解するために私をしばらく時間がかかりました。私はそれを自分自身のpydocsに追加します。 – Bharel