我的意思是:
__init__.py
文件和所有正确的文档字符串(模块,函数,类和方法级文档字符串)。但是,当我执行help(mypackage)
时,提供的唯一帮助就是在该顶级__init__.py
模块上提供的帮助。包级帮助通常不包括所有基础文档字符串,但是有时它包括。
我想确保我嵌入了所有基础文档字符串。
例如,在numpy
package中,即使在顶级__init__.py
中未提供,所有基本文档字符串也可从命令提示符的帮助中获得。
即,我可以输入
>>> help(numpy)
并查看所有文档,包括在dunder init模块外部定义的文档。
但是,许多其他软件包,包括pandas
package之类的流行软件包,并未捕获所有基础文档。
即输入
>>> help(pandas)
仅向我提供__init__.py
中定义的文档。
我想创建镜像numpy
的包级别文档。
我尝试查看numpy
,以了解它是如何执行此魔术的,没有运气。我已经执行过Google搜索,但似乎无法用短语表达此问题并获得任何体面的链接。
答案 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