python导入语句
我已经开始研究Python大约一个月了,我遇到了一些我想更好理解的东西。这与进口有关。所以我有一个模块: root.core.connectivity 现在在这个模块中,我定义了一个类连接性。此模块还有一个仅用于测试目的的python导入语句,python,Python,我已经开始研究Python大约一个月了,我遇到了一些我想更好理解的东西。这与进口有关。所以我有一个模块: root.core.connectivity 现在在这个模块中,我定义了一个类连接性。此模块还有一个仅用于测试目的的\uuuuuu main\uuuuuu(不确定这是否会产生任何差异) 现在如果我这样做: from root.core.connectivity import Connectivity as class_name 这很好,但是如果我尝试: import root.core.c
\uuuuuu main\uuuuuu
(不确定这是否会产生任何差异)
现在如果我这样做:
from root.core.connectivity import Connectivity as class_name
这很好,但是如果我尝试:
import root.core.connectivity.Connectivity as class_name
这将在以下情况下失败:
ImportError: No module named Connectivity
所以我的问题是,为什么它失败了,这两种说法之间有什么区别
问候,,
Bogdan导入需要一个模块<代码>从X导入Y在X中获取一个模块,Y中该模块的任何元素。
连通性
不是一个模块。root.core.Connectivity是一个模块,而root.core.Connectivity.Connectivity是一个类。
了解进口与进口之间的差异。。可以在您可以找到的位置导入:
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 root.core.connectivity as conn
class_name = conn.Connectivity
连接性是在模块中定义的一个类,导入采用模块,当使用“从导入”时,我们可以导入模块的类 这个链接解释得很好
注意:由于模块是一级值,您可以(有时会)通过
从X导入Y
从包(甚至子包)X
导入模块Y
。如果包内容本身不是完整的模块,那么在\uuuu init\uuuu.py
中显式导入包内容是一个很好的理由。