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

如何从基类Base中获取派生类Derived的名称

从基类方法获取调用它的子类名称

你需要的实现方式很直接:在基类的方法里,通过self.__class__.__name__就能拿到调用该方法的子类名称。因为self指向的是子类的实例,self.__class__对应的就是子类的类对象。

修改后的可运行代码:

class Base(object):
    def print_derived(self):
        print(self.__class__.__name__)

class Derived(Base):
    pass

bar = Derived()
bar.print_derived()  # 输出结果: Derived

哪怕是多重继承的场景(比如你的子类同时继承了多个mixin),这个方法依然能正确返回实例所属的最具体子类的名称。

这样只需要修改Base这一个mixin类,所有继承它的单元测试子类调用该方法时,都会自动输出自身类名,完全不需要逐个修改子类代码,正好匹配你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:06:38