想象一下,我這有Python descriptor:Python描述符的__set__可以用instance = None調用嗎?
class MyDesc(object):
def __get__(self, instance, instance_type=None):
return 'Blue berries'
def __set__(self, instance, value):
print 'called with', instance, value
class MyClass(object):
desc = MyDesc()
是否有東西塔爾__set__
的正常運行方式會得到調用None
爲實例論證?我的意思是沒有做這樣的事情
MyClass.__dict__['desc'].__set__(None, 'ants bees cats')
這些似乎並沒有做到這一點:
MyClass.desc = 'blah'
setattr(MyClass, 'desc', 'blah')
我之所以問的是我看到一些defensive coding in Django來避免這種情況,而且我質疑它是否是必要。