想象一下,我有这个Python 描述符:
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')
我问的原因是我在 Django 中看到了一些防御性编码来避免这种情况,我在质疑是否有必要。