一、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函數,因為它是被導入的模塊