python - Python:如何在包级帮助菜单中嵌入所有文档字符串帮助?
问题描述
我想问的是:
- TLDR: 如何让我的包的帮助包含所有底层文档字符串?
- 我创建了一个包。该包具有所有正确的
__init__.py
文件和所有正确的文档字符串(模块、函数、类和方法级别的文档字符串)。但是,当我执行时help(mypackage)
,提供的唯一帮助是该顶级__init__.py
模块提供的帮助。
通常包级帮助不包括所有底层文档字符串,但有时会包含.
我想确保我嵌入了所有底层文档字符串。
例如,在numpy
包中,所有底层文档字符串都可以在命令提示符的帮助中找到,即使它们没有在顶层提供__init__.py
。
即,我可以输入
>>> help(numpy)
并查看所有文档,包括在 dunder init 模块之外定义的文档。
但是,许多其他包,包括像pandas
包这样的流行包,并没有捕获所有底层文档。
即,打字
>>> help(pandas)
仅向我提供__init__.py
.
我想创建包级别的文档来反映numpy
它是如何做到的。
我试图numpy
查看它是如何执行这种魔法的,但没有运气。我已经执行了谷歌搜索,但似乎没有办法表达这个问题并获得任何体面的链接。
解决方案
numpy
__init__.py
向您显示有关在模块外部定义的类和函数的文档,因为它们的名称添加__all__
到__init__.py
. 尝试评论第 169-173 行(不要忘记取消评论!):
#__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
哪些包含您的文档字符串的信息:
Help on package folder:
NAME
folder
PACKAGE CONTENTS
file
CLASSES
builtins.object
folder.file.Class
class Class(builtins.object)
| Class docstring
|
| Data descriptors defined here:
|
| __dict__
| dictionary for instance variables (if defined)
|
| __weakref__
| list of weak references to the object (if defined)
DATA
__all__ = ['Class']
FILE
/some/path/folder/__init__.py
推荐阅读
- android - 在BottomSheetBehavior里面的Android NestedScrollView
- ruby-on-rails - 在纸轨中跟踪多个条件
- java - 在 Android 应用的历史记录选项卡中更新和保留历史记录
- mysql - 如何将特定的 CHARSET 和 COLLATION 应用于新数据库的内容?
- php - 您如何确保帐户在 WHMCS 上具有正确的 API 权限?
- python - 身份验证失败 - 缺少“授权”标头 - 对 Azure 的 Python HTTP 请求
- google-data-studio - Google Data Studio 是否有任何 API 可以传递参数?
- azure - Azure - 创建布尔变量并在多个任务中使用它
- neo4j - 是否可以在 neo4j 中的多个节点上跨多个属性创建唯一约束?
- oauth - MS OAuth 身份验证 - 仅限工作帐户