2012-01-25 1 views

답변

2

당신은 표준 파이썬 라이브러리에서 inspect 모듈을 사용할 수 있습니다

import inspect 


inspect.getfile(some_func) 
+0

아주 좋습니다! 이걸 몰랐어. 그것은 단지'sys.modules '를 참조하는 것보다 더 많은 함수 (예를 들어'struct.pack')에서 실패하는 것처럼 보입니다. –

+0

@MattiVirkkunen,'sys.modules [struct.pack .__ module __] .__ file__' raising'AttributeError : 'module'객체는 나를 위해 '__file __'속성을 가지고 있지 않습니다. 'sys.modules [struct.pack .__ module __]'->' reclosedev

+0

내 생각에는 버전이나 플랫폼의 차이 일 것 같네요. 다행히도 어쨌든 내장 파일이 어떤 파일인지 알 필요가 없습니다. –

2

대부분의 기능에서 작동합니다. 내장 기능에서는 작동하지 않지만 어쨌든 가져 오기 기능은 아닙니다.

import sys 
sys.modules[somefunc.__module__].__file__ 
+0

이 멤버 함수와 함께 작동하는지 확실하지 : 예를 들어, '' '.strip .__ module__'에 대한'None'입니다. – NPE

+0

@aix : 기본 제공이기 때문입니다. –