gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 02:14:57 31 4
gpt4 key购买 nike

当我尝试使用pyplot时来自matplotlib :

import matplotlib
print matplotlib.pyplot # just checking

它给了我AttributeError: 'module' object has no attribute 'pyplot'

可以用以下方法解决:

import matplotlib.pyplot

但我真正困惑的是,

import numpy
print numpy.random

给我<module 'numpy.random' from '/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/numpy/random/__init__.pyc'>

两种情况有什么区别? pyplot在第一个示例中无法调用,但 random是在第二。我认为这与某种包和模块有关。但我对python不是那么专业,所以寻求答案。

最佳答案

有关权威教程,read this .

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

每个基于目录的 python 模块(例如 matplotlibnumpy)都有一个 __init__.py 文件,该文件确定将哪些内容带入模块的顶级范围。默认情况下(当__init__.py为空时),范围内没有任何内容。

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

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

关于python - 从 NumPy、matplotlib 包导入 python 子模块有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22840671/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com