在Python中,标准导入和上下文导入哪个更高效?
如果这个问题看起来很基础,我提前表示歉意。
在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
上下文导入在技术上更高效,但我觉得它们可能会带来其他问题。
如果以后你想添加一个类似的异常处理条款,你就需要在两个地方维护同一段代码。这还会带来测试异常的问题,确保第一个导入不会在你的代码中引发一些意想不到的问题。