我想知道是否有一些标准的方法来做像
这样的事情import scipy as sp
from scipy import interpolate as sp.interpolate
是不允许的。
具体做法是:
我想知道是否有一些理由不允许上述内容。如果我正在开发自己的软件包foo,那么尽可能少地污染其名称空间似乎是合理的。
像
这样的事情import scipy as sp
__import__('scipy.interpolate')
完成这项工作,但并不是那么好,文档建议不要使用__import__
,除非严格要求。类似地
import importlib
import scipy as sp
importlib.import_module('scipy.interpolate',sp)
完成这项工作,但它仍然很难看,甚至更长,并将importlib放入命名空间......
答案 0 :(得分:0)
导入的模块被视为常规对象,因此如果您真的想要,可以导入模块并将其分配给任意变量,如此
import scipy as sp
from scipy import interpolate
sp.interpolate = interpolate
sp.interpolate将按预期运行,只要您调用sp.interpolate,它就会指向插值模块。它们是同一个对象,即
print sp.interpolate is interpolate
>>> True
然后最终删除原始的'interpolate'指针调用
del interpolate