gpt4 book ai didi

python - 不从 Python 模块导出函数

转载 作者:太空狗 更新时间:2023-10-30 00:36:43 24 4
gpt4 key购买 nike

如果我有一个包含以下内容的模块/文件 foo.py:

from math import sqrt

def foo():
pass

如果我在另一个脚本中导入它,sqrt 也会在模块 foo 中定义。

import foo    
dir(foo)

其输出为

[..., # other things
'foo',
'sqrt']

我该如何防止这种情况发生?即,要么指定 sqrt 不导出,要么仅导出特定函数 - 在这种情况下,仅导出用户定义的函数。我知道对于用户定义的函数,您可以通过在模块中添加下划线作为前缀来私下定义它们,但在这种情况下,它不是用户定义的函数,因此我无法使用下划线前缀来定义它。

最佳答案

in this case it's not a user-defined function so I can't define it with an underscore prefix.

是的,你可以:

from math import sqrt as _sqrt

另一种方法是只在函数作用域中需要的地方导入对象。

(虽然这可能会回答您的问题,但我仍然不知道您为什么要这样做。这两种选择都很麻烦,不会让您的代码库看起来更好。)

关于python - 不从 Python 模块导出函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14295277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com