为什么__dict__不是可调用的

时间:2013-05-13 15:12:40

标签: python django django-models

为什么__dict____unicode__不能兼容,反之亦然?

Django告诉我将unicode返回设置为Model上的方法,例如:

class Obj(models.Model):
    def __unicode__(self):
        return 'hey'

>>> x = Obj()
<__main__.Obj object at 0x100703e10>
>>> x.__unicode__()
u'hello'
>>> x.__dict__
{}

这似乎是一个奇怪的差异,任何人都可以向我解释一下吗?

2 个答案:

答案 0 :(得分:4)

__foo__约定用于Python中的方法和不可调用属性。 __unicode__是一种方法,__dict__不是。

答案 1 :(得分:0)

__dict__是实例的字典,而不是方法。