python - 使用键作为方法(getter 和 setter)调用语法访问字典

标签 python dictionary setter getter

在 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/

相关文章:

python - 如果没有,则对另一个函数的结果执行一个函数

python - 如何展平 pandas 数据框多列中的字典列表

python - linux 模块未找到错误 : No module named '_ctypes

python - 如何序列化递归函数?

python - 为什么 CPython Dicts 不受负一和负二哈希值的影响

python - 使用 basemap 在 map 上放置饼图

javascript - 如何从 JavaScript 对象中删除 setter?

wpf - 在 Setter.Value 结构中设置事件处理程序

java - 具有所有类属性的构造函数还是具有 setter 的默认构造函数?

python - 如何使用 Python/pyspark 运行 graphx?