2024-05-16 17:43:15 发布
网友
在Python中,我不太清楚以下两行代码之间的区别:
import X
或者
from X import *
他们不是都只是从模块X导入所有东西吗?有什么区别?
在import x之后,可以引用x中的内容,比如x.something。在from x import *之后,可以像something一样直接引用x中的内容。因为第二个表单直接将名称导入到本地命名空间中,所以如果从多个模块导入内容,则可能会产生冲突。因此,不鼓励from x import *。
import x
x
x.something
from x import *
something
您还可以执行from x import something,它只将something导入到本地命名空间,而不是x中的所有内容。这更好,因为如果列出导入的名称,就可以准确地知道要导入的是什么,而且更容易避免名称冲突。
from x import something
在本地命名空间中创建引用模块对象的标签。
直接在本地命名空间中为X模块的每个成员属性创建标签。
X
这两个操作都将X添加到sys.modules,为true,但对本地命名空间的影响是不同的。
sys.modules
在
import x
之后,可以引用x
中的内容,比如x.something
。在from x import *
之后,可以像something
一样直接引用x
中的内容。因为第二个表单直接将名称导入到本地命名空间中,所以如果从多个模块导入内容,则可能会产生冲突。因此,不鼓励from x import *
。您还可以执行
from x import something
,它只将something
导入到本地命名空间,而不是x
中的所有内容。这更好,因为如果列出导入的名称,就可以准确地知道要导入的是什么,而且更容易避免名称冲突。在本地命名空间中创建引用模块对象的标签。
直接在本地命名空间中为
X
模块的每个成员属性创建标签。这两个操作都将
X
添加到sys.modules
,为true,但对本地命名空间的影响是不同的。相关问题 更多 >
编程相关推荐