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

Python 在具有导入函数的模块上使用pydoc,python,import,module,pydoc,Python,Import,Module,Pydoc,我已经创建了自己的模块X。开始时,我从一些其他模块导入函数(例如,从math import func导入函数)。我注意到,当我创建文档时: pydoc -w X 生成的文件还包含从math模块导入的函数,这是不需要的(特别是如果我从几个模块导入了许多函数,我就是这么做的) 可以通过调用以下命令来避免: import math 但是在这种情况下,我必须导入所有函数,然后使用math.func调用它们,而不是只使用func 是否有另一种方法可以避免用导入的函数填充文档,同时仍然可以从导入带有的函

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

pydoc -w X
生成的文件还包含从
math
模块导入的函数,这是不需要的(特别是如果我从几个模块导入了许多函数,我就是这么做的)

可以通过调用以下命令来避免:

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


是否有另一种方法可以避免用导入的函数填充文档,同时仍然可以从导入带有
的函数

查看源代码内部,您可以看到以下评论:

if all is not None:
     # only document that which the programmer exported in __all__
     return name in all
这意味着
pydoc
将查找
\uuuuu all\uuuuuu
模块属性,并且如果定义了,将只记录其中定义的函数

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

__all__ = ['myfunc1', 'myfunc2', ..., 'myfuncN']
举例说明:

如果没有
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

from math import cos

def myfunc():
    """ documentation"""
    pass
生成一个
mod.html
文件,其中包含用户定义的
myfunc()
和导入的内置函数
cos()
的文档:

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

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

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


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

  • 函数中的函数
  • 数据中的变量