在Python中,标准导入和上下文导入哪个更高效?

4 投票
5 回答
511 浏览
提问于 2025-04-11 20:29

如果这个问题看起来很基础,我提前表示歉意。

在Python中,哪种方式被认为更高效呢:

标准导入

import logging

try:
  ...some code...
exception Exception, e:
  logging.error(e)

...还是...

上下文导入

try:
  ...some code...
exception Exception, e:
  import logging
  logging.error(e)

5 个回答

3

这只是一个小优化,没必要太担心。

3

这要看你执行上下文导入的频率。

一个import语句需要检查模块是否存在,这个过程是有成本的。

如果你频繁使用上下文导入,可能会影响性能,但并没有带来真正的简单性。除非你非常确定这个导入会很少用到或者根本不会用到,否则几乎没有好处。

if语句中使用上下文导入是有道理的,特别是当它在最上层执行时,这意味着只会执行一次。

if someConfig:
    import this as bigDeal
else:
    import that as bigDeal
6

上下文导入在技术上更高效,但我觉得它们可能会带来其他问题。

如果以后你想添加一个类似的异常处理条款,你就需要在两个地方维护同一段代码。这还会带来测试异常的问题,确保第一个导入不会在你的代码中引发一些意想不到的问题。

撰写回答