5

我想在我的命令行应用程序中获取文档字符串,但是每次我调用内置的 help() 函数时,Python 都会进入交互模式。

如何获取对象的文档字符串而不让 Python 获取焦点?

4

3 回答 3

7

任何文档字符串都可以通过该.__doc__属性获得:

>>> print str.__doc__

在 python 3 中,您需要括号来打印:

>>> print(str.__doc__)
于 2009-08-13T07:50:59.473 回答
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__
于 2009-08-13T07:54:18.810 回答
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.
于 2014-09-25T05:06:44.210 回答