所以我很困惑,因为差异是......这里有一些代码可以显示我的困惑:
>>> 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'>
Run Code Online (Sandbox Code Playgroud)
import collections.OrderedDict没找到模块,却from collections import OrderedDict发现了吗?!这两个陈述有什么区别?
该类被读为collections.OrderedDict,所以我不明白为什么第一次尝试无法找到该模块
我只是以集合为例.我并没有特别寻找为什么我的例子采用了它对集合的方式,而是为了解释为什么不同的代码行实际上要求进口.如果您想包含错误的解释,请随意!谢谢!
小智 5
PEP 221谈论import as.
import foo.bar
Run Code Online (Sandbox Code Playgroud)
用于导入模块的子模块 。这可以“导入为”barfoo
import foo.bar as fb
Run Code Online (Sandbox Code Playgroud)
导入一个对象
from foo import baz
Run Code Online (Sandbox Code Playgroud)
这也可以“导入为”
from foo import baz as fb
Run Code Online (Sandbox Code Playgroud)
collections.OrderedDict不是子模块而是对象,因此只能以第二种方式“导入为”。