2014-01-10 1 views
0

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

"클래스 정보"개체가 없습니다. 바로 그 클래스 자체는 하나의 객체이며, 여러분이 다루는 클래스 객체입니다. 그 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

관련 문제