__dict__
用来查看类或对象的成员
类的__dict__
保存了普通方法(test),类方法(class_test),静态方法(static_test),全局变量(a,b),内置方法和属性(双下划线的)
对象的__dict__
保存了__init__()
方法里的属性,既self.xx
class A(object):
a = 0
b = 3
def __init__(self):
self.a = 2
self.c = 1
def test(self):
print('normal func.')
@staticmethod
def static_test(self):
print('static func.')
@classmethod
def class_test(self):
print('calss func.')
obj = A()
print (A.__dict__) # {'__module__': '__main__', '__doc__': '\n Class A.\n ', 'a': 0, 'b': 3, '__init__': <function A.__init__ at 0x0000022BAC955730>, 'test': <function A.test at 0x0000022BAC9557B8>, 'static_test': <staticmethod object at 0x0000022BAC953C88>, 'class_test': <classmethod object at 0x0000022BAC953CF8>, '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute '__weakref__' of 'A' objects>}
print (obj.__dict__) # {'a': 2, 'c': 1}
2.继承中的__dict__
1)每个类的类变量都放在自己的__dict__
,即使被重写
2)每个类实例化的对象的__dict__
是相同的
参考:
https://www.cnblogs.com/alvin2010/p/9102344.html