通过设计python语言,可能会发生不同的导入行为。
默认情况下,模块(*)的import语句仅导入主模块,而不导入子模块。主模块可能(如的情况下
numpy),也可能(如
scipy)不导入部分或全部子模块。
其原因如下
scipy:在大多数情况下,您只需要
scipy包的一个子模块。此默认行为不会在加载代码不需要的子模块时将解释器挂起。
编辑:请注意,
numpy默认情况下不会导入所有子模块,例如,它不会加载
numpy.f2py,有关更多详细信息,请参阅此问题/答案。
(*)在这里我的意思是一个导入语句,例如
import scipy或
import scipy assp,其中加载了模块。当然,如果您编写该代码,
import scipy.optimize则python将首先加载主模块,然后加载子模块。



