Python技术问题:能否在子类中修改父类的类级字典?
解决方案
不用重构整个代码结构,你可以通过子类继承父类字典并局部修改的方式实现,既避免重复复制整个字典,也不会在实例化时产生冗余调用:
具体实现方式
直接在子类中创建新的类字典,通过字典解包继承父类的所有条目,再覆盖需要修改的键:
class Base: Dict = {'attribute_name': (0,4), 'attr_b': (10,15), 'attr_c': (20,25)} # 示例多字段 class Sub(Base): # 继承父类Dict的所有条目,仅修改指定键 Dict = {**Base.Dict, 'attribute_name': (5,10)}
为什么这个方法可行
- 类级别的字典赋值只会在类定义时执行一次,不会在每次实例化子类时重复运行,完全没有冗余调用的问题。
- 不需要复制父类Dict的50多个条目,只需要写出要修改的2-3个键值对即可,代码简洁且易维护。
- 子类的Dict是独立的新字典,不会修改父类的原始Dict,避免影响其他子类或父类本身。
如果后续有多个子类需要修改不同的键,都可以用这种方式实现,每个子类只维护自己需要修改的部分即可。
内容的提问来源于stack exchange,提问作者Ryan Chou
相关产品推荐
相关产品推荐

