2013-06-14 3 views
1

인스턴스를 생성하기 전에 객체 주위에 코드를 전달하는 클래스가 많이 있습니다. 내가 사용할 수있는 운동을 하나의 개체 인스턴스의 유형을 테스트하는 것과 비슷한 방식으로 클래스의 유형을 테스트하려고합니다. 나는이 클래스들이 서로의 하위 클래스가 될 수 있음을 언급해야한다.isinstance - Python 클래스

불행하게도이 방식으로 isinstance(MyClass, MyClass)을 클래스 자체에 사용하면 False가 반환됩니다. docs 클래스에 따르면 객체의 유형은 type입니다.

내 질문은 - 인스턴스 유형과 동일한 방식으로 클래스 유형을 연습 할 수 있습니까? 나는 이것에 대해 어떻게 갈 것인가?

+3

왜 이것을 원합니까? [duck typing] (http://www.voidspace.org.uk/python/articles/duck_typing.shtml)을 사용하십시오. –

답변

4

정확히 무엇을하려합니까?

당신이 클래스 A 방금 ​​issubclass를 사용할 수 B 클래스의 서브 클래스인지 여부를 알고 싶은 경우

: 당신의 특별한 경우를 들어

issubclass(A, B) 

, 당신은 단지 Myclass == MyClass 또는 MyClass is MyClass 할 수 있습니다.

일반적으로 딥 인트로 스펙 션은 그리 좋은 생각이 아니며, 일반적으로 장고와 같은 일반적인 프레임 워크에 남아 있습니다.