我不确定这是否可行,但我想要的是让字典充当属性,在调用时返回默认值。基本上是这样的:
class galaxy(object):
def __init__(self):
self.mass = {'total':10,
'gas':2,
'stellar':8}
> gal = galaxy()
## call the dict like an attribute
> gal.mass
10
## but also have access to the dict
> gal.mass['total']
10
> gal.mass['gas']
2
如果这可以做到,最有效的方法是什么?
最佳答案
我认为,对于最终用户来说最不令人惊讶的结果是提供带有可选参数的访问方法,如下所示:
class galaxy(object):
def __init__(self):
self._mass = {'total':10,
'gas':2,
'stellar':8}
def get_mass(self, body='total'):
return self._mass[body]
gal = galaxy()
print gal.get_mass()
print gal.get_mass('gas')
或者,也许:
class galaxy(object):
def __init__(self):
self._mass = {'gas':2,
'stellar':8}
def get_mass(self, body=None):
if body is None:
return sum(self._mass.values())
return self._mass[body]
关于python - 我可以让字典作为具有默认返回值的属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32275223/