__dict__
과 같은 이유는 무엇입니까? 예 : __unicode__
은 호출 가능하지 않거나 그 반대의 경우가 있습니까?__dict__이 호출 가능하지 않은 이유
장고 예를 들어, 모델의 방법으로 유니 코드 반환을 설정하는 나에게 말한다 :
이class Obj(models.Model):
def __unicode__(self):
return 'hey'
>>> x = Obj()
<__main__.Obj object at 0x100703e10>
>>> x.__unicode__()
u'hello'
>>> x.__dict__
{}
그것은 이상한 불일치를 보인다, 사람이 나에게 그것을 설명 할 수 있습니까?
당신은 호출 할 수있는 속성 이름을 혼동하고 있습니다. 두 사람은 연결되어 있지 않습니다. '.__ unicode__'는 속성이며 호출 할 수있는 메소드로 변환됩니다. '.__ dict__'는 속성이며 사전으로 해석됩니다. 둘 다 a * 명명 규칙 *을 사용하고, 이름 주위에 이중 밑줄이 그 이름이 예약되어 있다는 것을 의미하며 특별한 의미가 있습니다. –
나는 그 질문을 이해하지 못한다. '__unicode__'는 객체의 유니 코드 표현을 원할 때마다 호출되는 메소드입니다. '__dict__'는 객체의 모든 멤버를 포함하는 속성입니다. 당신의 문제는 무엇입니까? –
나는 어떤 메소드와 속성이 있는지 알고 있는데, 스타일 차이가있는 이유를 궁금해합니다. 따라서 밑줄과 밑줄은 메소드처럼 마술처럼 작동하지 않습니다. 단순히 dict을 유지하는 대신에 dict을 계산해야합니다. 뭐라구? – RabbitInAHole