2017-10-22 1 views
2

나는 단순한 데이터뿐만 아니라 "사용자 정의 개체"를 찾을 수있는 파이썬 모듈을 검토 할 필요가있다. 여기에서는 내장되지 않지만 클래스/def 문으로 정의되거나 동적으로로드/생성되는 객체 (또는 함수 또는 클래스)를 의미합니다.파이썬 클래스 또는 객체가 사용자 정의 (내장이 아닌)인지 확인하는 방법은 무엇입니까?

참고 비슷한 질문이 있습니다,하지만 그들은 "새로운 스타일의 사용자 정의 클래스"에 대해 질문. inspect 모듈을 보았습니다. 어떻게 도움이되는지 알 수 없었습니다.

나는 모듈 및 거리에 '그것을 가져올 수 있습니다,하지만 난 간단한 형식으로 속성을 식별 할 수있는 쉬운 방법을 알고하지 않습니다. 예 - 0은 내장형인지 어떻게 말합니까? 여기 :

>>> a=0. 
>>> dir(a) 
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__'... 
>>> type(a) 
<class 'float'> 

내가 모듈/객체의 속성이 "사용자 정의"입니다 있는지 확인하기 위해 모든 표준 객체의 클래스를 알고 있습니까? 유형 모듈은 내장 인 경우 확인

+1

논리에 따라 : 어떤 프레임 워크를 사용하면 클래스는'builtin' 또는 사용자 정의입니까? –

+0

테스트 할 내용을 정확하게 정의 해 주시겠습니까? "사용자 정의"및 "내장"은 사용자가 인식 할 수있는 것보다 훨씬 모호합니다. – user2357112

+0

@ user2357112 차이점이 너무 모호하기 때문에 묻습니다. bs4 (가져 오기 bs4)의 모든 것을 살펴보고 '흥미로운'객체/클래스를 식별하고 싶습니다. bs4에서 사용자 정의 클래스를 다른 클래스와 차별화하고 싶습니다. 객체의 float 속성 클래스처럼 재미 있지는 않습니다. –

답변

1

시도는, 일반적으로 나를 위해 작동합니다. 예를 들어

:

a = 1.2 
type(a).__module__ == "__builtin__" 
+1

유망 해 보입니다. 나는 잠에서 후에 탐험 할 것이다. 감사! 내가 오프 고개를 끄덕 전에 –

+1

, 그것은 약속 같은데 - 그것은 또한 목록에 대한 작동합니다. –

0

당신은 클래스 알고 싶은 모든 모듈 목록에 추가 할 수 있습니다

수입 SYS

클래스 푸 (객체) : 패스

DEF print_classes() current_module = sys.modules에 [ 이름, 모듈 1, 모듈 2 .......] 디렉토리에있는 키 (current_module) : 경우 isinstance (getattr (current_module), 키 입력) : 인쇄 (키)

test.py

수입 foo는 foo.print_classes()

관련 문제