python學習筆記22.模組
阿新 • • 發佈:2021-01-27
技術標籤:python學習筆記python
1. 模組
1.1 模組的概念
模組是python程式架構的一個核心概念。
- 每一個以
py
結尾的python原始碼檔案都是一個模組 - 模組名同樣也是一個識別符號,需要符合識別符號的命名規則
- 在模組中定義的全域性變數、函式、類都是提供給外界直接使用的工具
- 模組就好比是工具包,要想使用這個工具包中的工具,就需要先匯入這個模組
1.2 模組兩種匯入方式
1) import匯入
import 模組名1
import 模組名2
- 提示:根據程式碼規範,在匯入模組時,每個匯入應該獨佔一行
- 匯入之後,通過
模組名.
使用模組提供的工具 — 全域性變數、函式、類
使用 as
指定模組的別名
- 如果模組的名字太長,可以使用
as
指定模組的名稱,以方便在程式碼中的使用
import 模組名1 as 模組別名
- 注意:模組別名應該符合大駝峰命名法
2) from…import 匯入
- 如果希望從某一模組中,匯入部分工具,就可以使用
from ... import
的方式 import 模組名
是一次性把模組中所有工具全部匯入,並且通過模組名/別名訪問
# 從模組匯入某一個工具
from 模組名 import 工具名
- 匯入之後,不需要通過
模組名.
,即可直接使用模組提供的工具 — 全域性變數、函式、類 - 注意:如果兩個模組存在同名的函式,那麼後匯入模組的函式,會覆蓋掉先匯入的函式
- 開發時,
import
as
關鍵字給其中一個工具起別名
1.3 模組的搜尋順序(擴充套件)
python的直譯器在匯入模組時,會:
- 搜尋當前目錄指定模組名的檔案,如果有就直接匯入
- 如果沒有,再搜尋系統目錄
注意:在開發時,給檔案起名,不要和系統的模組檔案重名
python中每一個模組都有一個內建屬性__file__
可以檢視模組的完整路徑
舉個栗子
import random
# 生成一個0-10的數字
rand = random.randint(0,10)
print(rand)
output:
9
注意:如果當前目錄下,存在一個random.py
random.py
,而不會載入系統的random
模組。
1.4 原則 — 每一個檔案都應該可以被匯入
- 一個獨立的python檔案就是一個模組
- 在匯入檔案時,檔案中所有沒有任何縮排的程式碼都會被執行一遍
- 在實際開發中,每一個模組都是獨立開發的,大多都有專人負責,開發人員通常會在模組下方增加一些測試程式碼,僅在模組內使用,而被匯入到其他檔案中不需要執行。
__name__
屬性
__name__
屬性可以做到,測試模組的程式碼只在測試情況下被執行,而在被匯入時不會被執行!__name__
是python的一個內建屬性,記錄著一個字串
– 如果是被其他檔案匯入的,__name__
就是模組名
– 如果是當前執行的程式__name__
是__main__
在很多python檔案中都會看到以下格式的程式碼:
# 匯入模組
# 定義全域性變數
# 定義類
# 定義函式
# 在程式碼的最下方
def main():
# ...
pass
# 根據 __name__ 判斷是否執行下方程式碼
if __name__ == "__main__":
main()