了解python中的帮助/文档

时间:2018-02-14 00:52:17

标签: 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-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:..........................

1 个答案:

答案 0 :(得分:1)

这与help()无关,在终端中导入同样的结果。

scipy是一个包,optimizescipy的子包。要从程序包导入模块,必须在顶级程序包__init__.py的{​​{1}}文件中指定。

scipy

不是这样,你必须通过直接导入它来指定它确实存在。

scipy -
       |- optimize
       |- __init.py__

获取import scipy ,但在scipy文件__init__.py中没有说明是其中的一部分。所以它不加载它。

optimize

进入from scipy import optimize 包并在不使用scipy文件的情况下加载optimize。换句话说,你告诉它自己获得__init__.py