說簡單點,Python模組就是帶有.py後綴的可執行文件,用來重複呼叫變數和函數。
比方說,你在資料分析過程中反覆需要讀取CSV文件,除了使用pandas等現成的函式庫方法外,還可以自己寫一個模組來調用。
# -*- coding: utf-8 -*- import csv desc = '这是csv读取函数' print(desc) def read_csv(path): with open(path, newline='') as csvfile: reader = csv.DictReader(csvfile) for i in reader: print(i)
你只需要將上面腳本儲存為.py文件,就可以透過import導入其中的read_csv函數,直接在你的程式碼中進行呼叫。
例如我將腳本儲存為readcsv.py,並存放到目前資料夾裡,在新的程式碼中調用,只需傳入csv檔案路徑名,就可以讀取相應檔案。
from readcsv import read_csv read_csv("e:\test.csv")
得到如下結果:
這就是一個編寫好的模組了,你可以隨時隨地進行調用,而不需要在程式碼中重複編寫複雜的方法。
我們看到,執行程式碼後既直接使用了模組的常數,也呼叫了模組的函數,這就涉及到模組的功能定義:
❝Python 模組( Module),是一個Python 文件,以.py 結尾,包含了Python 物件定義和Python語句。❞
模組相當於一個封裝好的工具箱,你只需要傳入相關參數,就可以使用其中的功能。
一般,大型的Python程式碼專案會有很多個模組,能讓邏輯更清晰。
除了透過import導入外,.py模組檔案還可以作為腳本直接運行。
我們在命令列切換到腳本所在目錄,並輸入:
python readcsv.py
就可以直接執行對應程式碼:
如果你在腳本程式碼中加入if __name__ == "__main__":語句,那麼該語句後面的程式碼只有在直接執行腳本時生效,而import導入模組時不被執行。
# -*- coding: utf-8 -*- import csv desc = '这是csv读取函数' print(desc) def read_csv(path): with open(path, newline='') as csvfile: reader = csv.DictReader(csvfile) for i in reader: print(i) if __name__ == "__main__": print("直接运行脚本时生效")
這也是困惑很多人的一個問題,if __name__ == "__main__":到底有什麼用?
__main__總是指當前執行模組的名稱(包含後綴.py) 。
__name__是內建變量,當模組直接執行的時候, __name__等於檔案名稱(包含後綴 .py )。
如果該模組 import 到其他模組中,則該模組的 __name__等於模組名稱(不包含後綴.py)。
所以當直接執行腳本時候,__name__ == "__main__"為真成立,可以繼續執行後面程式碼。
而當import導入模組時候,__name__ == "__main__"為假,不成立,無法執行後面程式碼。
這種操作常用於為模組提供便利用戶接口,或用於測試(把模組當作執行測試套件的腳本運行)。
以下是python常用內建模區塊,供參考。
以上是如何最簡單、通俗地理解Python模組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!