1

我想知道是否有一些标准的方法来做类似的事情

import scipy as sp
from scipy import interpolate as sp.interpolate

这是不允许的。

具体来说:

  1. 我想知道是否有某些原因不允许上述内容。如果我正在开发自己的包 foo,那么尽可能少地污染它的命名空间似乎是合理的。

  2. import scipy as sp
    __import__('scipy.interpolate')
    

    做这项工作,但不是那么好,文档建议不要使用__import__,除非绝对必要。相似地

    import importlib
    import scipy as sp
    importlib.import_module('scipy.interpolate',sp)
    

完成了这项工作,但它仍然很丑陋,甚至更长,并将 importlib 放在命名空间中......

4

1 回答 1

0

导入的模块被视为常规对象,因此如果您真的愿意,可以导入模块并将其分配给任意变量,如下所示

import scipy as sp
from scipy import interpolate 
sp.interpolate = interpolate

sp.interpolate 将按预期运行,它只是在您调用 sp.interpolate 时指向 interpolate 模块。它们是下面的同一个对象,即

print sp.interpolate is interpolate
>>> True

然后最终删除原始的“插值”指针调用

del interpolate
于 2013-10-17T08:58:11.520 回答