将私有属性转换为字典

Convert private attributes into dict

假设我有一个 class 具有私有属性,如下例所示:

class AwesomeClass:
   def __init__(self):
      self._var = 1
      self._awesome = 'awesome'

当我调用 vars(AwesomeClass) 时,return 的值是:

{'_var': 1, '_awesome': 'awesome'}

因此,如果没有私有启动器,我是否缺少获取正确值的内容?我如何 return 我的正确字典没有下划线值?比如下面这个例子?

{'var': 1, 'awesome': 'awesome'}

您从 vars(...) 得到的结果是正确的,因为您用前导下划线命名了变量。

所以如果你想让名字没有前导下划线,你可以像这样转换字典键:

{key.lstrip('_'): val for key, val in vars(AwesomeClass).items()}