我已经创建了自己的模块 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()
和 导入的内置函数的文档 余弦()
:
通过添加 __all__
并指定要在其中导出的函数名称:
__all__ = ['myfunc'] # visible names
from math import cos
def myfunc():
""" documentation"""
pass
您将“过滤掉”cos()
函数,并且只有 myfunc()
的文档:
注意:__all__
可以包含脚本中使用的函数和变量名。 pydoc
将区分这些并将它们分为两个不同的组:
- 函数中的函数
- 数据中的变量。
关于python - 在具有导入函数的模块上使用 pydoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34739477/