假设我编写了一个名为的 python 模块my_module:
# my_module.py
import numpy as np
def my_function():
print("Hello, module!")
Run Code Online (Sandbox Code Playgroud)
然后我my_module使用内置函数导入并检查它dir():
>>> import my_module
>>> dir(my_module)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'my_function', 'np']
Run Code Online (Sandbox Code Playgroud)
np显示在由 定义的名称列表中my_module。这很烦人,因为我经常想dir()通过my_module. 但是在上面的结果中,我不清楚如何判断它np是本地的my_module还是只是my_module导入的某个包,这(在我看来)混淆了my_module.
所以我的问题是,我如何构建my_module以便只有它定义的函数/类/等出现dir(my_module)?或者等效地,这样dir(my_module)就不会打印出导入的每个模块my_module.py?
我想:
这是可能的,因为dir(other popular packages)通常不会列出他们的每个导入:
>>> import scipy
>>> print([x for x in dir(scipy) if …Run Code Online (Sandbox Code Playgroud)