【问题标题】:python multiple import performance and standards compliancepython 多重导入性能和标准合规性
【发布时间】:2014-07-16 16:22:46
【问题描述】:

关于import 声明performance 的Python wiki 声明:

虽然 Python 的解释器被优化为不会多次导入同一个模块,但在某些情况下重复执行 import 语句会严重影响性能。

取下面的两个sn-ps:

片段 1:

from my_module import A
from my_module import B
from my_module import C

片段 2:

from my_module import A, B, C

在以下方面哪个“更好”:

  • 编码标准合规性
  • 性能

【问题讨论】:

    标签: python import coding-style python-import


    【解决方案1】:

    这充其量只是微优化。 my_module 在两个版本中只被导入 Python 一次;没有性能差异可言。

    唯一的区别是 Python 将在 sn-p #1 中执行 IMPORT_NAME 字节码 3 次,而在 sn-p #2 中只执行一次;在 #1 中初始导入后,您会获得两次缓存检查。由于这段代码只会被执行一次,这不是你会担心的事情。毕竟,包含这些行的模块也会被缓存。

    repeatedly 部分适用于 在循环中 执行导入的代码,而不是顶级模块代码。

    剩下的是Python styleguide

    导入通常应该在单独的行上,例如:

    是的:

     import os
     import sys
    

    没有:

     import sys, os
    

    尽管这样说是可以的:

      from subprocess import Popen, PIPE
    

    【讨论】:

    • 感谢您的回答。我认为这是微优化,但我在这里要求“仔细检查”。很遗憾我的问题被否决了。如果它继续被否决,我将删除它。
    • @JosvicZammit:很遗憾,既然您的问题有一个赞成的答案,您不能再自行删除您的问题。
    猜你喜欢
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多