07Python模組化程式設計
-
包
-
模組
模組是一個包含所有你定義的函式和變數的檔案,其後綴為.py(就如我們編寫的程式就是一個模組),可被其他程式引入。以使用該模組的函式等功能
模組分為三種:
1.內建模組:sys,os,subprocess,time等
2.自定義模組:人為自己編寫的模組,莫與自帶模組一個名
3.開源模組:可安裝下載各種牛逼的模組
-
函式
1.函式的定義
格式:
def 函式名(形參表): 函式體語句序列 []#可選項,即可以沒有返回值
函式呼叫:
函式名(實參表)
說明 :
函式必須先定義再使用
函式名與變數名的命名規則相同,只能包含字母,數字,下劃線,且不能以數字打頭
例:
def start(): print("Hello World!") if __name__ == '__main__': try: start() except KeyboardInterrupt: print('被終止')
2. 區域性變數和全域性變數
區域性變數:
只作用於函式或程式碼塊內。作用範圍有限。
全域性變數:
可被不同的函式/類/檔案共享。可被檔案內部任何函式和外部檔案訪問。全域性變數通常在檔案的開始處定義。
3. 模組安裝及使用
現在已經安裝的模組,查詢:
>>>help('modules')
檢視現在已安裝的所有模組
3.1 模組的安裝及映象的替換
在internal終端,輸入 pip install xx即可安裝模組。可直接輸入命令pip install -i 映象源 包
或者直接更換為國內映象源,以後不用再搜尋。可以加快下載速度。
提供幾個常見的國內映象源網站:
3.2 pip命令
pip install <第三方庫> #安裝庫 pip insatall -U<第三方庫> #更新已安裝的庫 pip show<第三方庫> #列出庫的詳細資訊 pip uninstall<第三方庫> #解除安裝 pip list #列出已經安裝的第三方庫
3.3 模組匯入方式
1.import 模組 as 別名
import 直接匯入模組
import math
a=math.exp(2)
2.from ... import ...
用於只匯入指定模組的部分屬性
from math import exp
a = exp(2)
4. 自定義包和模組
4.1 理解name屬性
每個py指令碼執行時都有一個name屬性:
若py檔案獨立執行則,__name__== __main__
若py檔案作為模組匯入,則其name屬性__name__== __xx__
例:
《Used_by.py》
if __name__ == '__main__': print('我是直接執行的') elif __name__ == 'Used_by': print('Used_by模組被呼叫了')
《理解包和模組》
import Used_by if __name__ == '__main__': print('------我是另一個模組,特意來呼叫別的模組-------')
執行結果:
(venv) λ python Used_by.py
我是直接執行的
(venv) λ python 理解包和模組.py
Used_by模組被呼叫了
------我是另一個模組,特意來呼叫別的模組-------
4.2 如何使用包或者定義包和模組
包可以用來管理多個模組,可看作包含大量py模組的資料夾。在每個包的目錄中都有一個__init__.py
的檔案,其可以是一個空檔案,只為標識檔期那資料夾是一個包。
__init__.py
檔案:
主要作用設定 __all__