2014-01-10 29 views
0

Python文檔說isinstance需要一個類的實例對象和類信息。問題是: 我只是有2類信息的對象,並有檢查class_inf1是一個實例class_inf2Python - isinstance(classInfo,classInfo)

例子:

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) 

在我更復雜的代碼,我不知道酒吧是什麼因爲它是一個變量。我不能初始化它,因爲我不知道它需要什麼參數,它也可能會做一些討厭的事情。 (我永遠不需要初始化這個變量,因爲它是一種測試)。

+0

沒有「class info」對象。這個類本身就是一個對象,它就是你正在處理的那些類對象。清除你對這些Java-isms的想法:-) – delnan

回答

6

你的術語很困惑,但我最好的猜測是你想檢查一個類是否從另一個類繼承。這是通過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 
+0

你說得對。我正在尋找'issubclass'。 (只要Stackoverflow允許,我會在10分鐘內接受你的答案)。 – Matt3o12