考虑以下python
包结构
working_directory/
-- test_run.py
-- mypackge/
---- __init__.py
---- file1.py
---- file2.py
并在file1.py
内部说我已经定义了一个函数func1()
,我还从numpy中导入了一些像from numpy import array
这样的函数。现在我想从mypackage
导入并使用test_run.py
,而不会在命名空间中看到这些numpy函数。我想使用import mypackage as mp
导入它并查看
mp.file1.func1()
mp.file2.func2()
etc
我不想看mp.file1.array()
。我该怎么办?
答案 0 :(得分:0)
一种可能性是使用下划线:
from numpy import array as _array.
虽然这并不禁止人们访问mp.file1._array
,但一般认为以下划线开头的变量属于私人'。
AFAIK,没有简单的方法可以禁止访问python中的任何变量。 (一种方法是使其成为类的属性,请参阅:https://docs.python.org/3/library/functions.html#property)