特殊进口问题

发布于 2021-01-29 18:34:05

我在导入scipy.special软件包时遇到问题。这不是有害的,只是令人讨厌/有趣。

当我使用导入scipyimport scipy as sp并尝试访问时,sp.special我得到:

>>> import scipy as sp
>>> sp.special
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'special'
>>>

但是如果import scipy.special可以的话,我可以通过scipy.special和访问特殊模块sp.special

>>> import scipy as sp
>>> import scipy.special
>>> scipy.special
<module 'scipy.special' from 'C:\Python27\lib\site-packages\scipy\special\__init__.pyc'>
>>> sp.special
<module 'scipy.special' from 'C:\Python27\lib\site-packages\scipy\special\__init__.pyc'>
>>>

现在,我special可以通过spscipy名称空间访问该模块。有趣的是,我可以通过scipy名称空间访问scipy的其余部分。

第一个问题:为什么special模块不第一次导入?

第二个问题:如何specialsp不定义scipy名称空间的情况下仅通过名称空间访问模块?

编辑:使用Python 2.7.2和scipy 0.10.1

关注者
0
被浏览
39
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    默认情况下,“ import scipy”不导入任何子包。具有大型Fortran扩展模块的子软件包太多,加载速度很慢。我不建议这样做import scipy或简称import scipy as sp。只是不是很有用。使用from scipy import specialfrom scipy import linalg等等。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看