在 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”)并且导入位于顶级时,它们就会失败。这是因为第一个模块中的名称还不可用,因为第一个模块正在忙于导入第二个模块。”

如果第二个模块只在一个函数中使用,那么可以很容易地将导入移动到该函数中。当调用导入时,第一个模块将完成初始化,第二个模块可以进行其导入。

如果某些模块是特定于平台的,则可能还需要将导入移出代码的顶层。在这种情况下,甚至可能无法在文件的顶部导入所有模块。在一个好的选择是在相应的特定于平台的代码中导入确切的模块。

更新于:2022年9月19日

2K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告