如何以Pythonic方式实现返回类实例变量为字典的方法
最优解法
直接使用Python内置的vars()函数即可,这是最符合Python风格的实现方式,不需要硬编码任何属性名:
class P1(object): def __init__(self,value=0,src='admin'): self.value=value self.src=src def getDict(self): return vars(self)
效果验证
调用示例:
ins = P1() print(ins.getDict())
输出结果完全符合要求:
{'value': 0, 'src': 'admin'}
补充说明
vars(self)的本质是返回实例的__dict__内置属性,直接写return self.__dict__也可以实现相同效果,不过vars()的可读性更强,更推荐使用。- 后续如果给类新增了其他实例属性,这个方法不需要做任何修改,会自动将所有实例属性纳入返回的字典中。
- 仅当类定义了
__slots__且未显式声明__dict__的场景下,该方法不适用,这种特殊场景才需要手动维护属性列表。
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

