在 Python 中,
有没有一种方法可以像在对象上调用方法一样访问字典。场景是,我想创建一个只有属性的类,没有方法。我很少遇到关于这种情况的讨论 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确实解决了一部分,那就是我可以初始化和读取。但无意设置/写入值。
最佳答案
通过在子类中实现 __getattr__
和 __setattr__
可以轻松完成此操作:
class MyDict(dict):
def __getattr__(self, attr):
return self[attr]
def __setattr__(self, attr, value):
self[attr] = value
关于python - 使用键作为方法(getter 和 setter)调用语法访问字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47797536/