2009-05-14 4 views
12

변수가 모듈인지 테스트해야합니다. 이것을 가장 청결한 방법으로하는 방법?isinstance (x, module)하는 방법?

일부 디스패처 함수를 초기화 할 때이 함수가 필요하며 함수가 dict 또는 module을 인수로 받아 들일 수 있기를 바랍니다.

+1

또한 인수의 유형을 확인해야합니까? 함수가 어떤 종류의 인수를 기반으로 완전히 다른 것을 수행한다면 확실하게 확인해야하지만 그렇지 않으면 형식을 명시 적으로 확인하지 않는 것이 보통 "Python"입니다. –

+0

pythonic 방법은 메서드와 변수가 있는지 확인하는 것입니다. 검사 할 수있는 것이 너무 많으면 isinstance가 선호됩니다. – Unknown

+0

파이썬 적 방법은 필요한 것을 사용하여 "확인"하는 것입니다. 존재해야만하는 것이 없으면 파이썬은 오류를 발생시킵니다. 어쨌든 모든 것을 사용하려는 경우 "확인"할 속성이 너무 많을 수 있습니다. –

답변

24
>>> import os, types 
>>> isinstance(os, types.ModuleType) 
True 

(또한 os 같은 내장 된 것뿐만 아니라, 자신의 파이썬 모듈에 적용됩니다.)

+0

감사합니다. 그것은 완벽하게 작동합니다! –

4

나는 종류의 모듈을 가져올 그래서 당신이없는이를 사용하려면 :

isinstance(amodule, __builtins__.__class__) 
관련 문제