如何防止导入的模块被访问(即阻塞我的代码完成选项)?
例如:
# testmodule.py
import os
def o_stuff():
return
当我导入 testmodule
时,我不希望每次键入 testmodule.
时都显示 os
;我只想要在 testmodule 中声明的函数/类——在本例中,只是 o_stuff
。
是否有类似于星号的东西(即 from testmodule import *
)可以做到这一点?
最佳答案
您可以定义一个特殊变量 __all__
,其中包含要由 from module import *
导入的名称列表 - 例如:
# testmodule.py
import os
__all__ = ['o_stuff', 'more_stuff']
def o_stuff():
pass
def more_stuff():
pass
具有代码完成功能的 IDE 通常也会遵守 __all__
(尽管我不熟悉 Visual Studio,所以我不知道 IntelliSense 是否这样做)。
尽管我强烈建议反对它(因为它会让任何阅读您的代码的人分心),但为了完整性而包含在此处的替代方法是将模块导入为下划线前缀的别名:
# ugly_as_sin.py
import os as _os
def o_stuff():
return _os.name
同样,from module import *
和代码补全通常都会忽略下划线前缀的名称。
关于python - 防止导入的模块出现在代码完成中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40755836/