python - 在一条线上进行多次导入有什么不好的吗?

标签 python import

当我用 Python 编程并且需要导入多个模块时,我通常会这样做:

import random, time, matplotlib, cheese, doge

然后当我阅读别人的代码时,我看到的是:

import random
import time
import matplotlib
import cheese
import doge

这是为什么?这两种风格有什么区别吗?

最佳答案

每行一个导入的做法在 PEP8 中标准化,并且遵循一个共同的标准就足以像其他人那样做。遵循通用标准遵循 Principle of Least Astonishment ,让熟悉标准的人更容易阅读和修改您的代码。

即使您不关心 PEP8,每行导入一次也会使您的代码更易于维护。

  • 导入更容易浏览/阅读:

    • import fred 中比在 import barney, betty, wilma, fred, bambam, pebbles 中更容易看出你得到了一个 fred >
  • 导入更容易定位:

    • 搜索“import fred”将找到 import fredimport fred, wilma, pebbles,但不会找到 import barney, fred
  • 导入更易于编辑:

    • 在大多数编辑器中插入和删除整行都很快。
    • 每行只有一个模块,因此您无需在行中搜索即可找到要编辑的内容 - 它在末尾。
    • 在模块内重新定位导入只是移动整行。
    • 将几个导入中的一个复制到另一个 Python 模块是一行的复制粘贴, 而不是复制粘贴然后删除您不想要的其他导入。
  • 导入更容易维护:

    • 每个更改的模块在更改集中都有自己的行 - 您无需阅读一行即可确定哪个或哪些模块发生了更改。
    • 缺少和添加的模块会影响文件和变更集中的行数。
    • 在更改集的视觉浏览中更容易识别和更正拼写错误。

即使不是标准,每行一次导入也是个好主意。因为它是标准,所以它是最好的选择。

关于python - 在一条线上进行多次导入有什么不好的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24271961/

相关文章:

mysql - 将 .sql 文件的文件夹导入单个数据库

python - 从嵌套文件夹导入模块

python - python中如何通过函数实例调用成员函数?

python - 获取拉丁字符的所有 unicode 变体

python - 在 Python 中使用索引迭代列表

python - 使用 Keras 构建 LSTM 单元

database - 将多个 (csv) 文件导入 Access 数据库的任何方式

python - 如何将默认值写入列,其中默认值是从使用另一个列的函数创建的值?

sqlite - 将 .CSV 文件导入 SQLite

import - Webpack/typescript 需要工作但导入不