如果我有一个foo.py
包含以下内容的模块/文件:
from math import sqrt
def foo():
pass
如果我在另一个脚本中导入它,sqrt
也是在模块中定义的foo
。
import foo
dir(foo)
其中的输出是
[..., # other things
'foo',
'sqrt']
我该如何防止这种情况?即,要么指定sqrt
不导出,要么只导出特定函数——在这种情况下,只导出用户定义的函数。我知道对于用户定义的函数,您可以在模块中通过以下划线前缀私下定义它们,但在这种情况下,它不是用户定义的函数,所以我不能用下划线前缀定义它。