Python中from import和import的区别是什么?
发布时间:2023-10-15 08:05:29
发布人:xqq
一、import语句
使用import语句可以导入整个模块,然后通过模块名来访问其中的函数、类等对象。例如:
import math# 使用math模块中的函数result = math.sqrt(25)
在这个例子中,我们使用import语句导入了math模块,并通过math模块名来调用其中的sqrt函数。
二、from import语句
使用from import语句可以选择性地导入模块中的特定对象,而不需要通过模块名来访问。例如:
from math import sqrt# 直接使用sqrt函数,无需使用模块名result = sqrt(25)
在这个例子中,我们使用from import语句从math模块中导入了sqrt函数,这样我们可以直接使用函数名sqrt,而不需要在调用时加上模块名。
三、区别
导入方式不同:import语句导入整个模块,from import语句只导入模块中的特定对象。访问对象的方式不同:使用import语句导入模块后,需要通过模块名来访问其中的对象;而使用from import语句导入特定对象后,可以直接使用对象名来访问。命名冲突:当导入多个模块时,使用import语句不会引起命名冲突,因为需要通过模块名来访问对象;但使用from import语句导入特定对象时,如果两个模块中有相同名称的对象,可能会引起命名冲突。推荐使用:通常情况下,推荐使用import语句导入整个模块,这样可以避免命名冲突,并且更清晰地表示代码中使用了哪些模块。延伸阅读
模块导入的高级用法
除了简单的import和from import语句,Python还支持其他一些模块导入的高级用法,例如:
1、使用as关键字给模块或对象起别名,以简化访问。
import math as mresult = m.sqrt(25)
2、使用通配符*导入模块中的所有对象。但这种方式不推荐使用,因为容易引起命名冲突,且不清晰。
from math import *result = sqrt(25)
3、导入模块时执行其中的特定代码块,可以在模块中使用__name__属性来判断是否是被导入的模块。
# mymodule.pydef func(): print("This is a function.")if __name__ == "__main__": func()# main.pyimport mymodule# 上面的代码不会执行mymodule中的func函数,因为它是被导入的模块