2013-11-11 4 views
7

Ну, я действительно смущен около __dict__ атрибутом. Я много искал, но все же я не уверен в выходе. Может ли кто-нибудь объяснить использование этого атрибута с нуля в случаях, когда он используется в объекте или классе или функции? Спасибо за каждый ответPython: Объяснить атрибут __dict__

+1

Вы должны прочитать: http://docs.python.org/2/reference/datamodel.html –

+1

Никто не собирается быть в состоянии облегчить ваше замешательство, если мы не понимаем, о чем вы смущены. Если вы попытаетесь это объяснить, у вас может возникнуть вопрос по теме для сайта. –

ответ

13

В основном он содержит все атрибуты, которые описывают объект под вопросом. Его можно использовать для изменения или чтения атрибутов. Цитируя this

словаря или другого объекта отображения используется для хранения объекта (записи) атрибуты.

Помните, что все объекты в python. Когда я говорю все, я имею в виду все как функции, классы, объекты и т. Д. (Я читал это правильно, классы. Классы также являются объектами). Например,

def func(): 
    pass 
func.temp = 1 

print func.__dict__ 

class TempClass(object): 
    a = 1 
    def tempFunction(self): 
     pass 

print TempClass.__dict__ 

Выход

{'temp': 1} 
{'a': 1, '__module__': '__main__', 'tempFunction': <function tempFunction at 0x7f77951a95f0>, '__dict__': <attribute '__dict__' of 'TempClass' objects>, '__weakref__': <attribute '__weakref__' of 'TempClass' objects>, '__doc__': None} 
+0

Привет, если в определении func было утверждение z = 10, почему в выводе func .__ dict__ i see {}? Допустим, что существовало утверждение func.temp = 1. – Zakos

+0

@ Zakos '__dict__' будет содержать атрибуты, которые описывают объект. Для класса переменные внутри него определяют класс, но для функции это не так. – thefourtheye

Смежные вопросы