Skip to main content
 首页 » 编程设计

Python之isinstance(类信息,类信息)

2025年05月04日15sharpest

Python 文档说 isinstance 需要类的实例对象和类信息。问题是: 我只有 2 个类信息对象,必须检查 class_inf1 是否是 class_inf2 的实例

例子:

class Foo(object): 
    pass 
 
class Bar(Foo): 
    pass 
 
# It should check if Bar is a instance of Foo. Bar can either be one of many subclasses or  
# the same class. 
isinstance(Bar, Foo) 
 
# i.e.: the function I'm looking for should be working as if Bar was an object: 
isinstance(Bar(), Foo) 

在我更复杂的代码中,我不知道 Bar 是什么,因为它是一个变量。我无法初始化它,因为我不知道它需要什么参数,它也可能会做一些讨厌的事情。 (而且我永远不需要初始化这个变量,因为它是一种测试)。

请您参考如下方法:

您的术语相当困惑,但我的最佳猜测是您想检查一个类是否继承自另一个类。这是通过内置的 issubclass 实现的:

class B(object): 
    pass 
 
class D(B): 
    pass 
 
print issubclass(B, object) 
print issubclass(D, B) # true 
# order matters: 
print issubclass(B, D) # false 
# it's transitive: 
print issubclass(D, object) 
# a class is a subclass of itself: 
print issubclass(B, B) # true