python - 在具有导入函数的模块上使用 pydoc

标签 python import module pydoc

我已经创建了自己的模块 X。一开始,我从其他一些模块导入函数(例如 from math import func)。我注意到当我创建文档时:

pydoc -w X

生成的文件还包含从 math 模块导入的函数 function,这是不可取的(特别是如果我从多个模块导入许多函数,这就是我所做的)。

可以通过调用来避免:

import math

但在这种情况下,我必须导入所有函数,然后使用 math.func 而不仅仅是 func 调用它们。

是否有另一种方法可以避免使用导入函数填充我的文档,同时仍然能够使用 from 导入函数?

最佳答案

在源代码中查找 Pydoc您可以看到以下评论:

if all is not None:
     # only document that which the programmer exported in __all__
     return name in all

这意味着 pydoc 将查找 __all__ 模块属性,并且,如果已定义,将仅记录中定义的函数

因此,对于您的模块 X,您可以通过指定它们的名称来定义要在 __all__ 中导出的函数。只有那些会记录在相应的功能部分:

__all__ = ['myfunc1', 'myfunc2', ..., 'myfuncN']

恰当的例子:

如果没有 __all__,以下名为 mod.py 的简单文件:

from math import cos

def myfunc():
    """ documentation"""
    pass

生成一个 mod.html 文件,其中包含用户定义的 myfunc() 导入的内置函数的文档 余弦():

enter image description here

通过添加 __all__ 并指定要在其中导出的函数名称:

__all__ = ['myfunc']  # visible names
from math import cos

def myfunc():
    """ documentation"""
    pass

您将“过滤掉”cos() 函数,并且只有 myfunc() 的文档:

enter image description here


注意:__all__ 可以包含脚本中使用的函数变量名。 pydoc 将区分这些并将它们分为两个不同的组:

  1. 函数中的函数
  2. 数据中的变量。

关于python - 在具有导入函数的模块上使用 pydoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34739477/

相关文章:

python - `import directory.module` 和 `import module` 之间的区别

Groovy 无法解析类,但可以在 groovyconsole 中工作

javascript - 带有 eval() 的 Javascript 模块;

ruby - 从模块中访问类的包含命名空间

python - pyinstaller 为我的 tkinter gui 制作一个空的黑色窗口

python - 将字典应用回 pandas 数据框

python - 将 <...> 作为 "foo bar <hello world> and so on"中的一项的正则表达式(目标 : Simple music/lilypond parsing)

csv - 导入大型 CSV 文件的最佳实践

ruby - 类的实例方法与模块方法

python - 在没有 root 的情况下安装 z3 后的路径问题