我有以下python文件test.py
:
from math import floor
from logging import getLogger
当我执行以下操作时:
$ python3
>>> import test
>>> help(test)
我看到了:
Help on module test:
NAME
test
FUNCTIONS
floor(...)
floor(x)
Return the floor of x as an Integral.
This is the largest integer <= x.
FILE
...
为什么在帮助文本中记录了floor
方法,但没有记录getLogger
?更广泛地说,是什么决定了python模块的帮助文本中列出了哪些方法?
答案 0 :(得分:1)
对于模块,您可以查看生成此帮助文本的docmodule
方法。
简而言之,列出了内置函数(如floor
)(请参阅条件中的isbuiltin
),而不属于您调用了help的模块的函数则不被列出(这就是inspect.getmodule(value) is object
的职责)。我不确定为什么做出此决定。
如果您定义一个__all__
变量,其中包含可见的函数/变量/类的名称,则可以覆盖此变量。
除了这些之外,您还有一些特殊名称(例如,以_
开头的名称)。您可以通过查看模块中大多数名称所调用的visiblename
函数来了解如何解决此问题。