在 Python 模块中使用 import 的“最佳实践”是什么?
import 语句,就像 Python 中的任何其他语句或关键字一样,应该按照最佳实践正确使用和添加到代码中。让我们逐一了解它们:
多个导入
多个导入通常应该在单独的行上。例如:
import numpy import pandas import matplotlib
始终位于顶部
导入语句总是放在文件的顶部,即
- 在任何模块注释和文档字符串之后
- 在模块全局变量和常量之前。
例如:
# import the numpy module import numpy
按顺序导入模块
一个好的做法是按照以下顺序导入模块:
- 标准库模块 – 例如 sys、os、getopt、re
- 第三方库模块 – 例如 ZODB、PIL.Image 等。
- 本地开发的模块
绝对导入
建议使用绝对导入,因为它们通常更易读,并且如果导入系统配置错误,它们的性能通常更好。例如:
import mypkg.sibling from mypkg import sibling from mypkg.sibling import example
通配符导入 (fromimport *) 应该避免
避免使用通配符导入,因为它们使名称空间中存在的名称不清楚,从而使读者和许多自动化工具都感到困惑。
循环导入
为了避免循环导入的问题,有时需要将导入移动到函数或类中。Gordon McMillan 说:
“当两个模块都使用“import <module>”形式的导入时,循环导入是可以的。当第二个模块想要从第一个模块中获取一个名称(“from module import name”)并且导入位于顶级时,它们就会失败。这是因为第一个模块中的名称还不可用,因为第一个模块正在忙于导入第二个模块。”
如果第二个模块只在一个函数中使用,那么可以很容易地将导入移动到该函数中。当调用导入时,第一个模块将完成初始化,第二个模块可以进行其导入。
如果某些模块是特定于平台的,则可能还需要将导入移出代码的顶层。在这种情况下,甚至可能无法在文件的顶部导入所有模块。在一个好的选择是在相应的特定于平台的代码中导入确切的模块。
广告