Python3的dict属性,是一个字典(dict),它包含了该对象所有的属性。
类的dict属性,存储 静态函数、类函数、普通函数、全局变量以及一些内置的属性。
类的对象的dict属性,存储与该实例相关的实例属性的字典,例如:self.xxx相关的信息。
案例:
class Person():
sex = None
age = 1
def __init__(self,name):
self.sex = '男'
self.age = 30
self.name = name
def test(self):
print ('a normal func.')
class Man(Person):
sex = None
age = 1
def __init__(self,name):
self.sex = '女'
self.age = 40
self.name = name
def test_B(self):
print ('func named test_B')
person = Person('Tom')
man = Man('Jerry')
print (Person.__dict__)
print (person.__dict__)
print (person.__dict__['name'])
print (Man.__dict__)
print (man.__dict__)
输出结果:
{'__module__': '__main__', 'sex': None, 'age': 1, '__init__': <function Person.__init__ at 0x000001CD23CB80D0>, 'test': <function Person.test at 0x000001CD23CB8160>, '__dict__': <attribute '__dict__' of 'Person' objects>, '__weakref__': <attribute '__weakref__' of 'Person' objects>, '__doc__': None}
{'sex': '男', 'age': 30, 'name': 'Tom'}
Tom
{'__module__': '__main__', 'sex': None, 'age': 1, '__init__': <function Man.__init__ at 0x000001CD23CB81F0>, 'test_B': <function Man.test_B at 0x000001CD23CB8280>, '__doc__': None}
{'sex': '女', 'age': 40, 'name': 'Jerry'}
从上述案例可以看出:
类的dict属性,返回类内部所有属性和⽅法对应的字典。
类的实例对象dict属性,返回实例属性和值组成的字典。
当有继承关系时,父类的dict 并不会影响子类的dict
内置的数据类型没有dict属性,例如:
number = 3
list = []
dd = {}
print(number.__dict__)
print(list.__dict__)
print(dd.__dict__)
报错如下:
image.png
网友评论