将私有属性转换为字典
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()}
假设我有一个 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()}