【发布时间】:2013-10-30 04:59:06
【问题描述】:
所以我很困惑有什么区别......这里有一些代码可以显示我的困惑:
>>> import collections.OrderedDict as od
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named OrderedDict
>>> from collections import OrderedDict as od
>>> od
<class 'collections.OrderedDict'>
解释:
import collections.OrderedDict 没有找到模块,但from collections import OrderedDict 找到了?! 这两种说法有什么区别?
类被读取为collections.OrderedDict,所以我不明白为什么第一次尝试找不到模块
注意:
我只是以collections 为例。我并不是在寻找具体为什么我的示例以它对集合的方式行事,而是在解释不同代码行在导入时实际要求的内容。如果您想对错误进行解释,请随意!谢谢!
【问题讨论】:
-
OrderedDict是collections模块中的一个类。当你看到像 x.y 这样的东西并且正在从中导入一些东西时,这意味着在这种情况下,“y”实际上是一个模块。 -
哦,所以基本上 y 将是 x 在事物方案中的目录,否则 y 是模块内的类或函数?
-
你可以在模块中嵌套模块,是的。
-
我知道,只是没有意识到这实际上是不同的语法
-
嘿,不用担心。它实际上也让我停下来。好问题。