2009-08-13 3 views
5

내 명령 행 응용 프로그램에서 docstring을 가져오고 싶지만 builtin help() 함수를 호출 할 때마다 Python이 대화식 모드로 전환됩니다.Python 대화 형 모드로 들어가지 않고 Docstring 가져 오기

이 아닌 객체의 문서 문자열을 얻으려면에 포커스가 있어야합니까?

파이썬 3에서
>>> print str.__doc__ 

, 인쇄에 괄호가 필요합니다 :

>>> print(str.__doc__) 

답변

7

모든 문서화 문자열은 .__doc__ 속성을 통해 볼 수 있습니다 클래스의 내용을 가져온 다음 반복하여 메서드 나 다른 것들을 찾습니다. 이 예는 이름 cmd로 시작하는 방법에 대한 클래스 Task에 보이는 자신의 문서화 문자열 가져옵니다

command_help = dict() 

for key in dir(Task): 
    if key.startswith('cmd'): 
     command_help[ key ] = getattr(Task, key).__doc__ 
3

당신은 dir( {여기에 삽입 클래스 이름} )을 사용할 수 있습니다

1

.__doc__가 최선의 선택입니다. 그러나 inspect.getdoc을 사용하여 docstring을 얻을 수도 있습니다. 이것을 사용하는 것의 한 가지 장점은 코드 블록으로 정렬되도록 들여 쓰여진 문서화 문자열에서 들여 쓰기를 제거한다는 것입니다.

예 :

In [21]: def foo(): 
    ....:  """ 
    ....:  This is the most useful docstring. 
    ....:  """ 
    ....:  pass 
    ....: 

In [22]: from inspect import getdoc 

In [23]: print(getdoc(foo)) 
This is the most useful docstring. 

In [24]: print(getdoc(str)) 
str(object='') -> string 

Return a nice string representation of the object. 
If the argument is a string, the return value is the same object. 
관련 문제