【发布时间】:2017-09-20 09:02:36
【问题描述】:
假设有一些知名的(第三方)Python 包a,它依赖于另一个知名的包b(例如,分别为imageio 和numpy)。两者都可以通过 pip 获得。
现在假设我自己的代码明确使用了a 和b。软件包版本在我的requirements.txt 中修复。
我看到了一些用于导入和使用这些包的选项,如下所述。对我来说,选项 2 和 3 看起来最干净,因为它们似乎减少了我需要明确管理的依赖项的数量。
从依赖管理的角度来看,是否有导入这些包的首选方式?还是只是风格问题?
选项 1:
import a
import b
...
a.something()
b.something_else()
...
选项 2:
import a # which imports b
...
a.something()
a.b.something_else()
...
选项 3:
import a
from a import b
...
a.something()
b.something_else()
...
【问题讨论】:
-
我选择选项 1,因为我不确定库
a将来何时会使用 libc代替b -
如果您不需要使事情复杂化,请不要。做任何看似本能的事情(我相当肯定大多数人都是选项 1)。
标签: python python-import