3
我讀了一些關於你可以用__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的[如何](https://docs.python.org/2/)中有更詳細的描述howto/descriptor.html)指南。 – wim
@wim其實,起初我提出這個問題的原因是因爲它沒有記錄在那裏。沒有'__get__',沒有數據描述符。花了我一段時間來弄清楚它是如何工作的。我想我會自己將它添加到pydocs中。 – Bharel