Python中import主要作用和使用場景
一、前言
寫過 Python 的猿猿肯定對 import 不陌生。但 Python 在 import module 時會執(zhí)行相關的代碼,你知道嗎? Python import 還有其他的什么特性呢?通過這一篇文章,徹底掌握 Python import
二、Python import 詳解
2.1 Python import 介紹
在Python中,import
是用于導入模塊和模塊中定義的變量、函數、類等內容的關鍵字。import
的作用是擴展Python的功能,并允許在代碼中使用其他模塊提供的功能。
2.2 Python import 例子
下面是import
的主要作用和使用場景,并給出相應的例子:
- 導入模塊:使用
import
可以導入一個完整的模塊,以便在代碼中使用該模塊中定義的功能。例如:
import math print(math.pi) # 使用math模塊中的常數pi
- 導入模塊中的特定內容:使用
from module import name
語法可以導入模塊中的特定函數、變量或類,以便直接在代碼中使用,而不需要使用模塊名稱作為前綴。例如:
from math import sqrt print(sqrt(16)) # 直接使用sqrt函數,無需使用math.sqrt
- 給導入的模塊或內容起別名:使用
import module as alias
或from module import name as alias
語法可以為導入的模塊或內容指定一個別名,以便在代碼中使用更短的名稱。例如:
import numpy as np print(np.array([1, 2, 3])) # 使用別名np代替numpy
- 導入模塊中的所有內容:使用
from module import *
語法可以導入模塊中的所有內容,使其在代碼中直接可用。但這種做法通常不被推薦,因為它會導致命名沖突和可讀性問題。例如:
from math import * print(sin(pi/2)) # 直接使用導入的sin和pi,但不推薦這種寫法
這些是import
的主要作用和使用場景。通過導入其他模塊,可以擴展Python的功能,并重用已有的代碼。使用合適的導入方式和別名,可以使代碼更加簡潔和可讀。
2.3 Python import 進一步解釋
2.3.1 Python import module
在Python中,當一個模塊被導入時,模塊中的代碼會被執(zhí)行。然而,模塊中的代碼只會在第一次導入時執(zhí)行一次。之后,如果再次導入同一個模塊,Python解釋器會直接使用已經加載的模塊,而不會再次執(zhí)行模塊中的代碼。
這種行為是為了確保**模塊中的代碼只會被執(zhí)行一次****,以避免重復執(zhí)行相同的操作。通過導入模塊,我們可以在需要時使用其中定義的函數、類和變量,而不必重新執(zhí)行模塊中的代碼。
值得注意的是,如果在模塊中存在全局級別的可執(zhí)行語句(例如函數定義以外的代碼),則在導入時會執(zhí)行這些語句。因此,模塊的導入可能會觸發(fā)一些副作用操作,例如打印輸出或初始化全局變量。
比如:創(chuàng)建test1.py
print("我是 test1,我被執(zhí)行了") def say_hello(): print("hello world test1")
再創(chuàng)建 test2.py
def say_hello(): from test import test1 test1.say_hello() if __name__ == '__main__': for i in range(10): say_hello()
執(zhí)行 test2.py 輸出
我是 test1,我被執(zhí)行了
hello world test1
hello world test1
hello world test1
hello world test1
hello world test1
hello world test1
hello world test1
hello world test1
hello world test1
hello world test1
2.3.2 Python import package
在Python中,當導入一個包(package)時,包本身不會被執(zhí)行。只有在使用該包中的模塊或對象時,才會執(zhí)行相應的代碼。
當導入一個包時,Python解釋器會查找并執(zhí)行該包下的__init__.py
文件。__init__.py
文件可以包含一些初始化代碼,用于設置包的環(huán)境、導入子模塊或執(zhí)行其他需要在導入時執(zhí)行的操作。但這些代碼只會在首次導入包時執(zhí)行一次。
例如,假設我們有一個名為my_package
的包,它的結構如下:
my_package/ __init__.py module1.py module2.py
在__init__.py
文件中,我們可以放置一些初始化代碼:
print("Executing initialization code in my_package") # 導入子模塊 from . import module1 from . import module2
然后,我們可以在另一個腳本中導入my_package
包:
import my_package print("Import completed")
運行上述腳本,輸出如下:
Executing initialization code in my_package
Import completed
從輸出結果可以看出,在導入my_package
包時,__init__.py
中的初始化代碼被執(zhí)行了一次。然后,Import completed
被打印出來,表示導入完成。
但注意,這里的執(zhí)行是指__init__.py
中的代碼被執(zhí)行,并不是包中的所有模塊都被導入和執(zhí)行。只有在使用my_package
中的具體模塊或對象時,才會執(zhí)行相應的代碼。
總結起來,當導入一個Python包時,包本身的代碼不會被執(zhí)行,只有在使用包內的模塊或對象時才會執(zhí)行相應的代碼。 __init__.py
文件中的初始化代碼會在首次導入包時執(zhí)行一次,可用于設置包的環(huán)境和導入子模塊。
三、總結
介紹了 Python 中 import 關鍵字的使用方法和工作原理。通過 import ,可以導入模塊和模塊中定義的內容,擴展 Python 的功能。文章提供了導入模塊、導入模塊中的特定內容、給導入的模塊或內容起別名以及導入模塊中的所有內容的例子,展示了 import 的多種用法。
此外,文章解釋了模塊的代碼只會在第一次導入時執(zhí)行一次的特性,以及導入包時執(zhí)行__init__.py
文件的初始化代碼。最后,總結了導入包時只有在使用包內的模塊或對象時才執(zhí)行相應代碼,而__init__.py
文件中的初始化代碼只會在首次導入包時執(zhí)行一次。
到此這篇關于Python中import主要作用和使用場景的文章就介紹到這了,更多相關Python import內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python BlockingScheduler定時任務及其他方式的實現
這篇文章主要介紹了python BlockingScheduler定時任務及其他方式的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09python3實現網頁版raspberry pi(樹莓派)小車控制
這篇文章主要為大家詳細介紹了python3實現網頁版raspberry pi(樹莓派)小車控制,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-02-02