【发布时间】:2017-07-23 16:04:15
【问题描述】:
我们有可以处理嵌套字典的属性:
class A(object):
_x = {}
@property
def z(self):
return self._x.get('_y', {}).get('_z')
@z.setter
def z(self, value):
if not self._x.get('_y'):
self._x['_y'] = {}
self._x['_y']['_z'] = value
如何创建属性y 以摆脱检查:
if not self._x.get('_y'):
self._x['_y'] = {}
z setter 最终必须看起来像:
@z.setter
def z(self, value):
self.x.y['_z'] = value
【问题讨论】:
-
我不太明白。也许您正在从模块
collections中寻找defaultdicts? -
@Alfe,最后我想,我只需要具有其他属性的类,而不是 dict。
-
为什么要等到 setter 被调用才把
_y放进去?只需初始化_x = {'_y': {}}并完成它。
标签: python properties setter