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

Python继承中如何修改子类类变量并复用父类功能?

Python子类复用父类方法并使用自身类变量的解决方案

你的问题出在父类方法里直接硬编码引用了Parent.my_global——不管子类怎么重定义这个类变量,方法都会固执地读取父类的值。要实现子类复用方法但用自己的类变量,不用改实例变量也不用重写方法,只需要修改方法里获取变量的方式。

修改后的代码如下:

class Parent():
    my_global = "parent"
    
    def __init__(self):
        pass

    def printmg(self):
        # 通过self.__class__动态获取当前实例所属的类
        print(self.__class__.my_global)


class Child(Parent):
    my_global = "child"


my_parent = Parent()
my_parent.printmg()  # 输出 parent
my_child = Child()
my_child.printmg()  # 输出 child

为什么这样有效?

self.__class__会返回当前实例对应的类对象:当父类实例调用方法时,它指向Parent类;子类实例调用时,就指向Child类。这样方法就能自动读取对应类的my_global变量,完美满足你“复用方法+子类自定义类变量”的需求。

内容的提问来源于stack exchange,提问作者Santiago Cuellar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:50:31