这两个导入语句之间的区别是什么?

时间:2016-10-26 18:48:45

标签: python

import theano.tensor as T
from theano import tensor as T 

两者之间是否存在差异或是否相同?哪个更好?

2 个答案:

答案 0 :(得分:0)

不,没有。在这两种情况下,您都要导入相同的内容。

要了解import modulefrom module import foo之间的差异,请参阅this question

答案 1 :(得分:0)

虽然评论中链接的SO帖子可能会为您提供您正在寻找的答案,但我想在对话中添加的一件事是,import a.b只有b才有效a的子模块,但如果b不是模块,则会引发错误。

另一方面,from a import b即使b不是模块(即,如果它是a的方法)也会有效。观察:

In [1]: import os.path

In [2]: from os import path

In [3]: import datetime.datetime
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-3-8466c53a2255> in <module>()
----> 1 import datetime.datetime

ImportError: No module named datetime

In [4]: from datetime import datetime

我认为from a import b是与import a.b相比的首选用法 - 至少它是我经常遇到的用法。在这两种情况下,as ...部分的操作都相同。