【发布时间】:2013-03-27 09:14:46
【问题描述】:
from package import * 和 import package 之间有性能差异吗?
【问题讨论】:
标签: python performance python-import
from package import * 和 import package 之间有性能差异吗?
【问题讨论】:
标签: python performance python-import
不,差异不是性能问题。在这两种情况下,都必须解析整个模块,并且将执行任何模块级代码。唯一的区别在于命名空间:首先,导入模块中的所有名称都将成为当前模块中的名称;第二种,在当前模块中只定义包名。
也就是说,很少有充分的理由使用from foo import *。导入模块,或从中导入特定名称。
【讨论】:
package 时,可能会从所有属性查找package.foo 中累积性能差异。不过,如果这是一个问题,请导入特定名称或缓存在本地查找的名称。
import newname as oldname。如果有经常换包的危险,马上import package as interfacename。
from foo import * 不应用于向前兼容。
import spam as sp 然后是cached_method = sp.foo?