gpt4 book ai didi

python - "import safe"在 Python 中是什么意思?

转载 作者:太空狗 更新时间:2023-10-29 22:09:52 33 4
gpt4 key购买 nike

我刚刚发现 nose 不会运行标记为可执行的测试的行为(如 a previous question 中所述)。我发现这令人惊讶,在我了解 nose 的行为之前,我浪费了一些时间试图找出为什么 nose 没有运行我的测试。

在 nosetests 的联机帮助页中,它描述了一个覆盖默认行为的选项:

--exe               Look for tests in python modules that are executable.
Normal behavior is to exclude executable modules,
since they may not be import-safe [NOSE_INCLUDE_EXE]

我的问题是:“导入安全”是什么意思?什么是非导入安全模块的示例?是否可以通过删除可执行位来使非导入安全模块成为导入安全模块,还是除此之外还有更多?

最佳答案

我不熟悉 nose,但我很确定“导入安全”的意思是导入模块只会定义东西,而不是开始运行东西。

想法是,如果 .py 文件被设计为作为脚本执行,那么它的功能将在执行模块范围代码时启动。这可以防止使用 __name__ == '__main__' 技巧导入,但它可能不是。如果不是,导入它可能会执行与不带参数调用时作为脚本执行的相同操作,这在某些情况下可能很糟糕。

因此,您可以通过传递 --exe 标志明确地告诉 nose 没有这样的可执行脚本导入是危险的,或者您可以清除脚本的可执行权限。

关于python - "import safe"在 Python 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10330499/

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