导入内部测试而不是模块的开头是否更加pythonic?

时间:2018-04-25 09:31:01

标签: python unit-testing pycharm

“PyCharm知道在测试中你在单元测试中进行导入而不是在模块启动时”是"Getting Started with PyCharm 7/8: Testing"视频中有关PyCharm提供的测试功能的引用。

来自PEP8

  

导入总是放在文件的顶部,就在任何模块注释和文档字符串之后,以及模块全局变量和常量之前。

In this other SO question,在python中导入的概念已经作为一个泛函概念得到了解决。但是,单元测试时没有提到特殊情况。

我们从导入内部测试而不是模块开始时获得了哪些优势?

如果不同的测试使用相同的模块,那么每次都必须导入模块吗?

1 个答案:

答案 0 :(得分:0)

根据this question,最好将import放在模块的开头。

如果您将import放在功能开头import只能在此功能中使用,那么您将无法在此功能之外使用它{ {1}}。考虑这个例子:

function

此外,如果您在模块内部运行def func(): import time time.sleep(1) func() time.sleep(1) # NameError: name 'time' is not defined ,则每次调用函数as mentioned it this question too时都会导入它。

我认为只有在您确实希望测试此导入具体情况时才应将导入放在import内。