包括模块文档中的导入函数

时间:2016-12-16 20:16:47

标签: python documentation

我的代码具有以下目录结构:

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我可以成功调用foobarbaz,而无需知道它们在哪个子模块中定义:

>>> 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部分中的barbazhelp(apkg)?< / p>

1 个答案:

答案 0 :(得分:0)

根据this answer

  

文档工具

     

文档和代码自动完成工具(实际上应该)也可以检查__all__以确定模块中显示的名称。

这就像在apkg/__init__.py

附加一行一样简单
__all__ = ['foo', 'bar', 'baz']