除非我弄错了,这两行代码实现的功能完全一样:
import theano.tensor as T
from theano import tensor as T
为什么Python中存在多种冗余的导入方式?
除非我弄错了,这两行代码实现的功能完全一样:
import theano.tensor as T
from theano import tensor as T
为什么Python中存在多种冗余的导入方式?
这个语句
import theano.tensor
只有当theano.tensor
本身是一个模块时,才能起作用。这就是允许你的两个示例都能正常工作的原因。
考虑sys.argv
,它不是一个模块。以下代码可以正常工作:
from sys import argv
使用 from sys import argv
语句将 argv
导入全局命名空间,而 import sys
不会这样做:
>>> import sys.argv
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named argv
sys.argv
不是模块,它在技术上的名称是什么? - tumultous_roostersys.argv
只是一个对象的完全限定名称(在这种情况下,是list
类的实例)。 - chepnersys
不是一个模块,而是一个___? - tumultous_roostersys
确实是一个模块:https://docs.python.org/2/library/sys.html。大多数模块中可用的东西只是普通对象,但有时会在模块内包含其他模块。例如,[`os` 模块](https://docs.python.org/2/library/os.html) 包含 os.path
模块。在你的情况下,theano
模块包含一个名为 tensor
的模块。 - Greg Hewgill