Python Import指令

时间:2016-01-02 03:01:23

标签: python numpy

  1. 我发现,如果我导入包,我需要快捷方式,我必须写

    Import numpy.linalg as lg
    

    但我不知道在这些格式类型中编写import指令的目的是什么,

    import numpy.linalg
    import numpy.numpy.polynomial.polynomial
    

    因为这些指令导入所有numpy包的方式与我只编写

    的方式相同
    import numpy
    

    最后,从let' s访问某些函数的语法说多项式是相同的

    import numpy
    xx = numpy.polynomial.polynomial.polydiv([2],[6])
    

    两种情况

    import numpy.numpy.polynomial.polynomial
    xx = numpy.polynomial.polynomial.polydiv([2],[6])
    

    那么这个目的是什么?

  2. NumPy模块自存储对象在哪里?我可以找到函数,类等的定义。对于NumPy包中子文件夹中的每个模块,但无法为NumPy本身找到任何文件,例如numpy.sin()函数。

1 个答案:

答案 0 :(得分:3)

导入包(例如numpy)不保证导入其子模块和子包。由于import numpy模块本身执行的导入,numpy.linalg碰巧加载numpy.polynomialnumpy,但这不是保证,并且所有NumPy子模块都不会发生这种情况。例如,

>>> import numpy
>>> numpy.distutils
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'distutils'
>>> import numpy.distutils
>>> numpy.distutils
<module 'numpy.distutils' from 'C:\Python27\lib\site-packages\numpy\distutils\__init__.pyc'>

至于numpy命名空间中对象的源代码,它在不同对象之间变化很大,而且可能相当复杂。例如,numpy.sin是由numpy/core/code_generators/generate_umath.py生成的C代码编译的ufunc,该代码生成器使用来自一堆其他文件的组件。