“import X”和“from X import*”之间的区别?

2024-04-29 21:16:13 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,我不太清楚以下两行代码之间的区别:

import X

或者

from X import *

他们不是都只是从模块X导入所有东西吗?有什么区别?


Tags: 模块代码fromimport区别
2条回答

import x之后,可以引用x中的内容,比如x.something。在from x import *之后,可以像something一样直接引用x中的内容。因为第二个表单直接将名称导入到本地命名空间中,所以如果从多个模块导入内容,则可能会产生冲突。因此,不鼓励from x import *

您还可以执行from x import something,它只将something导入到本地命名空间,而不是x中的所有内容。这更好,因为如果列出导入的名称,就可以准确地知道要导入的是什么,而且更容易避免名称冲突。

import X

在本地命名空间中创建引用模块对象的标签。

from X import *

直接在本地命名空间中为X模块的每个成员属性创建标签。

这两个操作都将X添加到sys.modules,为true,但对本地命名空间的影响是不同的。

相关问题 更多 >