Python无需进入交互模式即可获取文档字符串

时间:2009-08-13 07:49:53

标签: python interactive

我想在命令行应用程序中获取docstring,但每次调用builtin help()函数时,Python都会进入交互模式。

如何获取对象的文档字符串,让Python抓住焦点?

3 个答案:

答案 0 :(得分:7)

任何docstring都可以通过.__doc__属性获得:

>>> print str.__doc__

在python 3中,您需要使用括号进行打印:

>>> print(str.__doc__)

答案 1 :(得分:3)

您可以使用dir( {insert class name here} )来获取类的内容,然后迭代它,查找方法或其他内容。此示例在类Task中查找以名称cmd开头的方法,并获取其文档字符串:

command_help = dict()

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

答案 2 :(得分: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.