使用键作为方法访问字典 (getter & setter) 调用语法
access dict with key as method (getter & setter) invocation syntax
在Python,
有没有一种方法可以像在对象上调用方法那样访问字典。场景是,我想创建一个只有属性的 class,没有方法。我发现很少有人讨论这种情况 Python: Should I use a class or dictionary?。我决定选择 dict
而不是 class
。
不,我只是想了解,有没有一种方法可以访问 dict 的元素,类似于对对象的方法调用?
mydict = {'a': 100, 'b': 20.5, 'c': 'Hello'}
而不是
mydict['a']
mydict['a'] = 200
有点像,
mydict.a
mydict.a = 200
namedtuple确实解决了一部分,就是我可以初始化读取。但不拟set/write值。
这很容易通过在子类中实现 __getattr__
和 __setattr__
来完成:
class MyDict(dict):
def __getattr__(self, attr):
return self[attr]
def __setattr__(self, attr, value):
self[attr] = value
在Python,
有没有一种方法可以像在对象上调用方法那样访问字典。场景是,我想创建一个只有属性的 class,没有方法。我发现很少有人讨论这种情况 Python: Should I use a class or dictionary?。我决定选择 dict
而不是 class
。
不,我只是想了解,有没有一种方法可以访问 dict 的元素,类似于对对象的方法调用?
mydict = {'a': 100, 'b': 20.5, 'c': 'Hello'}
而不是
mydict['a']
mydict['a'] = 200
有点像,
mydict.a
mydict.a = 200
namedtuple确实解决了一部分,就是我可以初始化读取。但不拟set/write值。
这很容易通过在子类中实现 __getattr__
和 __setattr__
来完成:
class MyDict(dict):
def __getattr__(self, attr):
return self[attr]
def __setattr__(self, attr, value):
self[attr] = value