4

__dict__たとえば__unicode__、両方が呼び出し可能であるか、またはその逆ではないのはなぜですか?

Django は、Unicode リターンをモデルのメソッドとして設定するように指示します。たとえば、次のようになります。

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

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

奇妙な矛盾のように思えますが、誰か説明してもらえますか?

4

2 に答える 2

4

この__foo__規則は、Python のメソッドと呼び出し不可能な属性の両方に使用されます。__unicode__はメソッドですが、そうで__dict__はありません。

于 2013-05-13T15:15:21.897 に答える