了解Python的帮助/文档



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

In[2]: import scipy
In[3]: help(scipy.optimize)
Traceback (most recent call last):
  File "C:.....libsite-packagesIPythoncoreinteractiveshell.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:..........................

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

scipy是一个软件包,optimizescipy的子包装。为了使模块从包装中导入一个模块,必须在顶级软件包scipy中的__init__.py文件中指定。

scipy -
       |- optimize
       |- __init.py__

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

import scipy

获取scipy,但在__init__.py文件中没有说optimize是其中的一部分。因此它不会加载。

from scipy import optimize

进入scipy软件包并无需使用__init__.py文件加载optimize。换句话说,您告诉它自己得到optimize

最新更新