2009-08-15 4 views
24

어떤 종류의 문서도없는 C로 작성된 Python 라이브러리를 사용하려고합니다. 적어도 인트로 스펙 션을 사용하여 모듈에 어떤 메소드와 클래스가 있는지 확인하고 싶습니다. 누군가가 모듈 내에 함수 (인수 목록 포함) 및 클래스 (메서드 및 멤버 변수 포함)를 나열하는 데 사용할 수있는 함수 또는 라이브러리가 있습니까?파이썬 2.5 모듈에서 메소드를 어떻게 나열 할 수 있습니까?

나는 파이썬 인트로 스펙 션에 관해서 this article을 찾았지만 파이썬 2.5에는 적용되지 않는다고 확신한다. 도와 주셔서 감사합니다.

답변

51

다음은 최소한을 할 수있는 몇 가지가 있습니다 모듈, 그들의 docstrings도 인쇄.

4

dir() 함수는 모듈에있는 모든 멤버를 표시합니다.

import module 

print dir(module) # Find functions of interest. 

# For each function of interest: 
help(module.interesting_function) 
print module.interesting_function.func_defaults 
5

그냥이 꽤 좋다 :

import module 
help(module) 

그 다음의 내용을 나열 모듈의 문서화 문자열을 인쇄합니다

+0

"PACKAGE CONTENTS"가 도움을 얻을 수있는 대안을 찾을 수 없습니다. 이것은 도움말 텍스트에 있지만 다른 대답은 알고리즘을 통해 얻을 수있는 방법이 없습니다. – AlanSE

+0

아,이 https://github.com/python/cpython/blob/ac317700ce7439e38a8b420218d9a5035bba92ed/Lib/pydoc.py#L733의 소스 코드에서 찾을 수 있습니다. 패턴은'importer, modname, ispkg for pkgutil.iter_modules (object .__ 경로 __) :' – AlanSE

12

Mark Pilgrim의 chapter 4은 실제로 Python 2.5 (이전 버전과의 호환성 덕분에 다른 2.* 버전)에도 잘 적용됩니다. 마크는 help을 언급하지 않지만 다른 대답은 볼 수 있습니다.

아무도 언급하지 않은 것으로 보이는 열쇠 비트는 inspect입니다. 이것은 진보 된 인트로 스펙 션에 실제로 도움이되는 파이썬 표준 라이브러리의 우수한 모듈입니다.