__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