Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Explain __dict__ attribute [duplicate]

Tags:

python

I am really confused about the __dict__ attribute. I have searched a lot but still I am not sure about the output.

Could someone explain the use of this attribute from zero, in cases when it is used in a object, a class, or a function?

like image 770
Zakos Avatar asked Nov 11 '13 13:11

Zakos


1 Answers

Basically it contains all the attributes which describe the object in question. It can be used to alter or read the attributes. Quoting from the documentation for __dict__

A dictionary or other mapping object used to store an object's (writable) attributes.

Remember, everything is an object in Python. When I say everything, I mean everything like functions, classes, objects etc (Ya you read it right, classes. Classes are also objects). For example:

def func():     pass  func.temp = 1  print(func.__dict__)  class TempClass:     a = 1     def temp_function(self):         pass  print(TempClass.__dict__) 

will output

{'temp': 1} {'__module__': '__main__',   'a': 1,   'temp_function': <function TempClass.temp_function at 0x10a3a2950>,   '__dict__': <attribute '__dict__' of 'TempClass' objects>,   '__weakref__': <attribute '__weakref__' of 'TempClass' objects>,   '__doc__': None} 
like image 116
thefourtheye Avatar answered Nov 08 '22 10:11

thefourtheye