__dict__ là dictionary chứa symbol table của module/class/instance.
- Class
__dict__: namespace của class (class attribute, method, v.v.) - Instance
__dict__: instance attribute của object đó
Ví dụ
class MyClass:
class_var = 1
def __init__(self, i_var):
self.i_var = i_var
foo = MyClass(2)
bar = MyClass(3)
print(MyClass.__dict__)
# {'__module__': '__main__', 'class_var': 1, '__dict__': ,
# '__weakref__': , '__doc__': None, '__init__': }
print(foo.__dict__) # {'i_var': 2}
print(bar.__dict__) # {'i_var': 3}
Ứng dụng: Introspection, dynamic attribute access, serialization.