关注this file structure,我的项目如下(简化):
Project/
|-- project/
|-- test/
|-- test_foo.py
|-- foo.py
使用最佳做法,我应该如何从foo
内导入test_foo.py
?我知道相对导入,但是PEP 8 discourages them。
答案 0 :(得分:1)
在单元测试中,至少是外部接口的测试,更喜欢绝对导入。测试应该尽可能地像客户端代码一样,并且当事情被移动时,当__init__.py
没有从模块中正确地重新导出时,它们应该中断。
答案 1 :(得分:0)
从测试开始,我总是使用from .. import foo
,因为它是最简单的,使包最容易重构,并且不会破坏,因为我始终将我的测试保存在tests/
子封装
PEP8讨论的前半部分的相对导入是隐式相对导入:例如,来自foo.py
:import test.test_foo
。这些 不好,并且从不使用它们的理由。
否则,唯一的选择是from project import foo
。