理解python中的帮助/文档

理解python中的帮助/文档,python,Python,这可能是个愚蠢的问题。我不明白为什么第一个会抛出错误,而另一个会工作。这里有一个简单的解释吗 In[2]: import scipy In[3]: help(scipy.optimize) Traceback (most recent call last): File "C:.....lib\site-packages\IPython\core\interactiveshell.py", line 3035, in run_code File "<ipython-input-3-8

这可能是个愚蠢的问题。我不明白为什么第一个会抛出错误,而另一个会工作。这里有一个简单的解释吗

In[2]: import scipy
In[3]: help(scipy.optimize)
Traceback (most recent call last):
  File "C:.....lib\site-packages\IPython\core\interactiveshell.py", line 3035, in run_code
  File "<ipython-input-3-87bd9e5565b6>", line 1, in <module>
    help(scipy.optimize)
AttributeError: 'module' object has no attribute 'optimize'



In[4]: from scipy import optimize
In[5]: help(optimize)
Help on package scipy.optimize in scipy:..........................
[2]中的
:导入scipy
在[3]中:帮助(scipy.optimize)
回溯(最近一次呼叫最后一次):
运行代码中的第3035行文件“C:..…lib\site packages\IPython\core\interactiveshell.py”
文件“”,第1行,在
帮助(scipy.optimize)
AttributeError:“模块”对象没有属性“优化”
在[4]:从scipy导入优化
在[5]中:帮助(优化)
关于软件包scipy.optimize in scipy的帮助:。。。。。。。。。。。。。。。。。。。。。。。。。。

这与
help()
无关,在终端中导入它会得到相同的结果

scipy
是一个包,
optimize
scipy
的一个子包。为了从软件包导入模块,必须在顶级软件包的
scipy
文件中的
\uuuu init\uuuu.py
中指定该模块

scipy -
       |- optimize
       |- __init.py__
它不存在,因此您必须通过直接导入它来指定它确实存在

import scipy
获取
scipy
,但它没有在
\uuuuu init\uuuuuu.py
文件中说明
optimize
是它的一部分。所以它不会加载它

from scipy import optimize
进入
scipy
包并加载
optimize
,而无需使用
\uuuuu init\uuuuuuuuuuuuuuupy
文件。换言之,您告诉it部门自己进行
优化