所以我很困惑有什么区别......这里有一些代码来显示我的困惑:
>>> 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”实际上是一个模块。
您应该阅读有关 import
如何工作的文档:here 。它很长而且很复杂,但同时又相当简单地说明了如何研究不同的包和模块以找到应该发挥作用的内容。具体来说,导入statement本身和 import system .
关于python - from x import y 和 import x.y 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55470412/