python - 防止导入的模块出现在代码完成中?

标签 python python-2.7 autocomplete python-import

如何防止导入的模块被访问(即阻塞我的代码完成选项)?

例如:

# 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/

相关文章:

python - 这段 Python 代码是什么意思?

loops - 相当于Jinja中的此循环

android:imeOptions ="actionNext"在不指定 android:inputType 的情况下不起作用

python - numpy数组中每个元素之间的差异

python - 每个给出不同的结果?

python - 查找 Homebrew 安装的 Python 路径

python - OpenCV python : Show images in channel's color and not in grayscale

python-2.7 - 项目列表的 Flask 部分 View

java - javafx 中代码区域的自动补全

python - 在 Google App Engine 中创建表单自动完成