Python 防止导入的模块在代码完成时显示?
如何防止导入的模块不可访问(即阻塞代码完成选项) 例如:Python 防止导入的模块在代码完成时显示?,python,python-2.7,autocomplete,python-import,Python,Python 2.7,Autocomplete,Python Import,如何防止导入的模块不可访问(即阻塞代码完成选项) 例如: # testmodule.py import os def o_stuff(): return # testmodule.py import os __all__ = ['o_stuff', 'more_stuff'] def o_stuff(): pass def more_stuff(): pass 导入testmodule时,我不希望每次键入testmodule时都显示os;我只希望在test
# testmodule.py
import os
def o_stuff():
return
# testmodule.py
import os
__all__ = ['o_stuff', 'more_stuff']
def o_stuff():
pass
def more_stuff():
pass
导入testmodule
时,我不希望每次键入testmodule时都显示os
;我只希望在testmodule中声明函数/类–在本例中,只需o_stuff
是否有类似于星号的东西(即testmodule import*
中的)可以执行此操作?您可以尝试使用模块中的\uuuu all\uuuu
来查看它是否有帮助
import os
__all__ = ['o_stuff']
def o_stuff():
return
不熟悉Intellisense,但听起来它也可能需要一些微调。您可以定义一个特殊变量\uuuuuuu all\uuuuuuu
,其中包含一个名称列表,该列表将由从模块导入*
导入-例如:
# testmodule.py
import os
def o_stuff():
return
# testmodule.py
import os
__all__ = ['o_stuff', 'more_stuff']
def o_stuff():
pass
def more_stuff():
pass
具有代码完成功能的IDE通常也会尊重\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
(尽管我不熟悉Visual Studio,所以我不知道IntelliSense是否这样做)
为了完整起见,这里提供了一种替代方法,尽管我强烈建议反对它(理由是它会让任何人阅读代码分心),即将模块作为下划线前缀别名导入:
# ugly_as_sin.py
import os as _os
def o_stuff():
return _os.name
同样,模块导入中的*
和代码完成通常都会忽略带下划线前缀的名称。D'oh,3秒!