Python:如何在包级帮助菜单中嵌入所有文档字符串帮助?

时间:2019-03-20 01:21:52

标签: python numpy package docstring code-documentation

我的意思是:

  • TLDR:如何让我的软件包帮助包括所有基础文档字符串?
  • 我创建了一个包裹。该软件包具有所有正确的__init__.py文件和所有正确的文档字符串(模块,函数,类和方法级文档字符串)。但是,当我执行help(mypackage)时,提供的唯一帮助就是在该顶级__init__.py模块上提供的帮助。

包级帮助通常不包括所有基础文档字符串,但是有时它包括

我想确保我嵌入了所有基础文档字符串。


例如,在numpy package中,即使在顶级__init__.py中未提供,所有基本文档字符串也可从命令提示符的帮助中获得。

即,我可以输入

>>> help(numpy)

并查看所有文档,包括在dunder init模块外部定义的文档。

但是,许多其他软件包,包括pandas package之类的流行软件包,并未捕获所有基础文档。

即输入

>>> help(pandas)

仅向我提供__init__.py中定义的文档。

我想创建镜像numpy的包级别文档。


我尝试查看numpy,以了解它是如何执行此魔术的,没有运气。我已经执行过Google搜索,但似乎无法用短语表达此问题并获得任何体面的链接。

1 个答案:

答案 0 :(得分:6)

insert into tableXX select 'val1', 'val2', ifnull(max(c), 0) + 1 from tableXX where a.CD = 'I', select 'val1', 'val2', ifnull(max(c), 0) + 1 from tableXX where a.CD = 'I', 向您展示了在numpy模块外部定义的类和函数的文档,因为它们的名称添加到了__init__.py中的__all__变量中。尝试在第169-173行注释(不要忘记取消注释!):

__init__.py

完成此操作后,#__all__.extend(['__version__', 'show_config']) #__all__.extend(core.__all__) #__all__.extend(_mat.__all__) #__all__.extend(lib.__all__) #__all__.extend(['linalg', 'fft', 'random', 'ctypeslib', 'ma']) 的输出将非常有限。

还让我们重现此行为。从help(numpy)开始,创建文件夹'/some/path',文件名为folder,其中包含以下内容:

file.py

还有class Class: """Class docstring"""

__init__.py

现在让我们来看一下帮助:

from .file import *

现在将这一行添加到/some/path$ python3.5 >>> import folder >>> help(folder) Help on package folder: NAME folder PACKAGE CONTENTS file FILE /some/path/folder/__init__.py

__init__.py

重新导入__all__ = ['Class'] 后,命令folder将包含有关help(folder)的信息,其中包括您的文档字符串:

class Class