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

如何在Python中检查两个实例对象是否属于同一父类?

检查Python对象是否共享指定父类的方法

方法1:用isinstance()验证是否属于目标父类的实例

这是最直接的解决方案,isinstance(obj, cls)会返回布尔值,判断对象是否是指定类或其子类的实例,完全匹配你需要判断两个实例是否均为superclass1实例的场景。

示例代码:

class Superclass1:
    pass

class Sub1(Superclass1):
    pass

class Sub2(Superclass1):
    pass

# 实例化对象
obj1 = Sub1()
obj2 = Sub2()

# 执行检查
if isinstance(obj1, Superclass1) and isinstance(obj2, Superclass1):
    print("两个实例均属于Superclass1的子类实例")
else:
    print("不符合条件")

方法2:检查类的继承链(适配复杂继承场景)

如果需要确认两个实例的类是否共享某个父类(无论直接还是间接继承),可以通过类的__mro__属性(方法解析顺序)查看完整继承链,或用issubclass()判断子类关系。

示例代码:

# 检查两个实例的类是否均继承自Superclass1
if issubclass(type(obj1), Superclass1) and issubclass(type(obj2), Superclass1):
    print("两个实例的类均继承自Superclass1")

# 查看类的完整继承链
print(Sub1.__mro__)  # 输出: (<class '__main__.Sub1'>, <class '__main__.Superclass1'>, <class 'object'>)

补充:严格检查是否有共同直接父类

如果需求是判断两个实例的类是否以superclass1作为直接父类,可以直接对比类的__bases__属性:

if type(obj1).__bases__[0] == type(obj2).__bases__[0] == Superclass1:
    print("两个实例的类的直接父类都是Superclass1")

注意:如果类存在多继承(多个直接父类),需要调整逻辑遍历__bases__列表进行匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 20:33:09