定义一个类将它实例化, 我们可以通过 obj. 属性来访问类的属性, 如果想获取类的所有实例变量, 我们可以使用 obj.__dict__来访问, 如下:
- class A:
- def __init__(self):
- self.a = 1
- self.b = 2
- a = A()
- print(a.__dict__)
- # {'a': 1, 'b': 2}
- # 获取变量 a:
- print(a.__dict__['a'])
- # 1
如果我们想直接通过字典的方式访问类, obj=A(),dict(obj) 直接拿到类的所有实例变量, 可以通过如下方式:
- class A:
- def __init__(self):
- self.a = 1
- self.b = 2
- def keys(self):
- return ('a','b',)
- def __getitem__(self, item):
- return getattr(self, item)
- a = A()
- print(dict(a))
- # 输出:{'a': 1, 'b': 2}
可以看到, 通过定义 keys 方法能够限制类的实例变量的输出, 用内置的 dict 方法就能把类转换成一个普通的字典了
来源: http://www.bubuko.com/infodetail-3064387.html