如果这个问题看起来很基础,我提前道歉。
在Python中,哪种方式被认为更高效:
标准导入
import logging
try:
...some code...
exception Exception, e:
logging.error(e)
上下文导入
try:
...some code...
exception Exception, e:
import logging
logging.error(e)
如果这个问题看起来很基础,我提前道歉。
在Python中,哪种方式被认为更高效:
标准导入
import logging
try:
...some code...
exception Exception, e:
logging.error(e)
上下文导入
try:
...some code...
exception Exception, e:
import logging
logging.error(e)
上下文导入在技术上更有效,但我认为它们可能会带来其他问题。
如果稍后您想添加类似的except子句,则现在有两个地方需要维护相同的代码块。您还需要测试异常处理程序,以确保第一个导入不会在代码中引起任何未预料的问题。
这是一种微优化。不用担心。
import
语句需要检查模块是否存在,这是一项非常耗费资源的操作。if
语句内进行上下文导入是有意义的。if someConfig:
import this as bigDeal
else:
import that as bigDeal
它们本质上是相同的。Python解释器只会加载一个被使用的模块一次,无论你导入它多少次。改变导入语句的位置只会影响名称绑定的位置——例如,如果您的import
语句在函数内部,则该名称只能在该函数中使用。
通常情况下,导入语句应尽可能靠近文件的“顶部”。