You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在子类构造方法中通过**kwargs参数更新继承自父类的变量值

实现方案

核心逻辑是先调用父类构造方法完成默认属性初始化,再用传入的关键字参数匹配更新对应属性即可。

完整实现代码

class ABC:
    def __init__(self):
        self.var_1 = 'a'
        self.var_2 = 'b'

class XYZ(ABC):
    def __init__(self, **kwargs):
        # 执行父类构造方法,初始化所有继承的默认属性
        super().__init__()
        # 遍历关键字参数,仅更新父类已定义的属性(避免新增不必要的实例属性)
        for attr_name, attr_val in kwargs.items():
            if hasattr(self, attr_name):
                setattr(self, attr_name, attr_val)

简化写法(无属性校验)

如果不需要限制只能更新父类已有属性,可以直接用字典更新方法简化代码:

class XYZ(ABC):
    def __init__(self, **kwargs):
        super().__init__()
        self.__dict__.update(kwargs)

效果验证

# 无参数实例化,保留父类默认值
a = XYZ()
print(a.var_1)
# 输出:a

# 传入关键字参数,覆盖对应属性默认值
b = XYZ(var_1='updated_value')
print(b.var_1)
# 输出:updated_value

内容的提问来源于stack exchange,提问作者Muhammad Daniyal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:00:01