class - Python更新继承的类级别字典

标签 class inheritance dictionary python-3.x

我正在寻找一种干净、简单的方法来更新从基类继承的类级字典。例如:

class Foo(object):
    adict = {'a' : 1}

class Bar(Foo):
    adict.update({'b' : 2})  # this errors out since it can't find adict

这样:

Foo.adict == {'a' : 1}
Bar.adict == {'a' : 1, 'b' : 2}

我不想在这里使用实例,如果可能的话也不使用类方法。

最佳答案

请注意,即使这有效,您也将更新同一字典而不是创建新字典(因此 Foo.adict is Bar.adictFoo.adict == Bar.adict )。

无论如何,最简单的方法是显式引用父类的字典(并复制它,见上文):

class Bar(Foo):
    adict = dict(Foo.adict)
    adict.update({'b': 2})

关于class - Python更新继承的类级别字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8647370/

相关文章:

java - 为什么要使用继承?

c# - 对象模型,正确或最直观的方式

python - 使用 map 和 lambda 增加字典列表中的元素

typescript - 扩展 Typescript 索引对象以一般访问索引对象(字典)值的类型

android - 如何将联系人详细信息存储为类变量android

jquery - 根据 HREF 值切换父元素的类 jQuery

C++ : Allocation of an array attribute in a class

C++:继承的必备默认父类(super class)构造函数?

Python:字典中的可搜索字典?

python - 方法 __getattr__ 不是从父类继承的