重叠Python导入语句 - 糟糕的做法?

时间:2013-05-31 22:01:49

标签: python-2.7 python-import

在我的Python实用程序中,我经常需要使用os.path,而我已经达成的约定是将其导入为:

import os.path as fs

fs是“文件系统”的缩写。

我现在正在编写一个实用程序,我还需要os中的一个方法。我尝试了一个快速测试,将其作为两个独立的“重叠”导入,即

import os
import os.path as fs
[...some code referencing both os and fs...]

从功能上来说这很好用,但我想就这种“重叠”导入是否是不良做法提出一些建议。是否最好跳过我惯常的约定,仅导入os,并在需要时使用os.path而不是fs

1 个答案:

答案 0 :(得分:3)

import a.b.c

导入aa.ba.b.c模块并定义a名称,即

import a
import a.b.c

最后导入相同的模块。为了便于阅读,如果您的代码使用它,则应明确import a(删除import a.b.c不应影响仅使用a的代码,即:

import os
import os.path
如果您的代码同时使用osos.path,那么

就可以了。第二次导入在技术上不是必需的:os模块不是包(hasattr(os, "__path__") == False);你可以使用:

import os
fs = os.path