【发布时间】:2013-05-07 06:35:01
【问题描述】:
想象一下我有这个Python descriptor:
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 来避免这种情况,我在质疑是否有必要。
【问题讨论】:
标签: python descriptor