我有一个导入scipy.special包的问题.它没有害处,只是讨厌/有趣.
当我导入scipy使用import 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'
>>>
Run Code Online (Sandbox Code Playgroud)
但如果我那么做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'>
>>>
Run Code Online (Sandbox Code Playgroud)
所以我现在special可以通过命名空间sp和scipy命名空间访问模块.有趣的是,我可以通过scipy命名空间访问其余的scipy .
第一个问题:为什么special模块不能第一次导入?
第二个问题:如何special在sp不定义scipy命名空间的情况下仅通过命名空间访问模块?
编辑:使用Python 2.7.2和scipy 0.10.1
Rob*_*ern 22
默认情况下,"import scipy"不会导入任何子包.有太多的子包装和大型Fortran扩展模块,加载速度很慢.我不建议做import scipy或缩写import scipy as sp.它不是很有用.使用from scipy import special,from scipy import linalg等等.
| 归档时间: |
|
| 查看次数: |
16341 次 |
| 最近记录: |