我已经开始使用Python大约一个月了,我遇到了一些我想要更好理解的东西。它与进口有关。所以我有一个模块: root.core.connectivity
现在在这个模块中我定义了一个连接类。此模块还有一个__main__
仅用于测试目的(不确定这是否会产生任何差异)。
现在,如果我这样做:
from root.core.connectivity import Connectivity as class_name
这很好,但是如果我尝试:
import root.core.connectivity.Connectivity as class_name
这将失败:
ImportError: No module named Connectivity
所以我的问题是,为什么它会失败,两个陈述之间有什么不同。
此致 波格丹
答案 0 :(得分:5)
import
需要一个模块。 from X import Y
在X中使用一个模块,而Y. Connectivity
中该模块的任何元素都不是模块。
答案 1 :(得分:3)
连接是模块中定义的类,导入模块,使用from-import时我们可以导入模块的类。
答案 2 :(得分:0)
root.core.connectivity是一个模块,而root.core.connectivity.Connectivity是一个类。 要在导入和导入之间进行差异,您可以在use the following link找到:
import_stmt ::= "import" module ["as" name] ( "," module ["as" name] )*
| "from" relative_module "import" identifier ["as" name]
( "," identifier ["as" name] )*
| "from" relative_module "import" "(" identifier ["as" name]
( "," identifier ["as" name] )* [","] ")"
| "from" module "import" "*"
例如,您使用带模块的'import'和带有标识符的'from ... import' - 例如类,变量和其他模块。
因此,在第二种情况下,您可以执行以下操作:
import root.core.connectivity as conn
class_name = conn.Connectivity