我的代码具有以下目录结构:
apkg/
__init__.py
amod.py
bmod.py
cmod.py
apkg/__init__.py
包含的位置:
"""
effusive top-level documentation
"""
from apkg.amod import foo
from apkg.bmod import bar
from apkg.cmod import baz
从python repl我可以成功调用foo
,bar
和baz
,而无需知道它们在哪个子模块中定义:
>>> import apkg
>>> apkg.foo()
"foo"
获取他们的文档:
>>> help(apkg.foo)
Help on function foo in module apkg.amod:
foo()
Returns "foo"
但是他们没有在apkg
的文档中做广告:
>>> help(apkg)
Help on package apkg:
NAME
apkg - effusive top-level documentation
PACKAGE CONTENTS
amod
bmod
cmod
FILE
/path/to/apkg/__init__.py
默认情况下这是有道理的,因为我只想在defaultdict
中执行from collections import defaultdict
来包含apkg/__init__.py
的文档。
有没有办法覆盖这个默认值,所以我可以告诉文档解析器列出foo
的FUNCTIONS部分中的bar
,baz
和help(apkg)
?< / p>
答案 0 :(得分:0)
根据this answer:
文档工具
文档和代码自动完成工具(实际上应该)也可以检查
__all__
以确定模块中显示的名称。
这就像在apkg/__init__.py
__all__ = ['foo', 'bar', 'baz']