从NumPy导入python子模块有什么区别,matplotlib包

前端之家收集整理的这篇文章主要介绍了从NumPy导入python子模块有什么区别,matplotlib包前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

参见英文答案 > Importing packages in Python                                    5个
当我尝试使用matplotlib的pyplot时:

import matplotlib
print matplotlib.pyplot  # just checking

它给了我AttributeError:’module’对象没有属性’pyplot’

它可以通过以下方式解决

import matplotlib.pyplot

但我真的很困惑的是,

import numpy
print numpy.random

从’/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/numpy/random给我< module'numpy.random' /__init__.pyc'\u0026gt; 两种情况有什么区别? pyplot不能在第一个例子中调用,但随机是在第二个例子中.我认为它与某种包和模块有关.但我不是Python的专业人士,因此要求回答.

最佳答案
对于权威教程,read this.

但对于您的具体情况,看起来这就是发生的事情:

每个基于目录的python模块(如matplotlib和numpy)都有一个__init__.py文件,它确定了什么带入了模块的顶级范围.默认情况下(当__init__.py为空时),范围内没有任何内容.

但是,一些模块(如numpy)决定通过向__init__.py添加import语句将功能提升到顶层.即使您只显式导入了numpy,这也会将这些子模块纳入范围.

为了检查我们的假设,让我们来看看源代码

> matplotlib’s __init__.py包括语句import pyplot.
> numpy’s __init__.py确实包括随机导入,在第176行.

猜你在找的Python相关文章