首頁>技術>

模組

Python 模組(Module),是一個 Python 檔案,以 .py 結尾,包含了 Python 物件定義和Python語句。

模組讓你能夠有邏輯地組織你的 Python 程式碼段。

把相關的程式碼分配到一個模組裡能讓你的程式碼更好用,更易懂。

模組能定義函式,類和變數,模組裡也能包含可執行的程式碼。

模組的建立

因為Python的模組就是一個Python檔案,所以現在我們建立一個能夠專門提供貧窮等級計算的模組service。

檔名:service.py

def judgeQLevel(money:int):    if money > 50:        res = "富有"    elif money > 45:        res = "小康"    elif money > 40:        res = "貧窮"    elif money > 30:        res = "特窮"    else:        res = "低保救助物件"      msg = f"根據你的年收入,計算出你的貧窮級別為:{res}"    return msg

建立完後,模組service中就有一個可供使用者使用的方法judgeQLevel,使用者可以在自己的程式碼中直接匯入使用。

模組的匯入和使用

建立測試檔案test.py匯入並使用service模組

import service  moneyYear = input("請收入你的年收入,單位(萬):")  ret = service.judgeQLevel(int(moneyYear))  print(ret)

執行結果:

➜  test git:(master) ✗ python3 test.py請收入你的年收入,單位(萬):15根據你的年收入,計算出你的貧窮級別為:低保救助物件➜  test git:(master) ✗ python3 test.py請收入你的年收入,單位(萬):31根據你的年收入,計算出你的貧窮級別為:特窮➜  test git:(master) ✗ python3 test.py請收入你的年收入,單位(萬):100根據你的年收入,計算出你的貧窮級別為:富有➜  test git:(master) ✗ python3 test.py請收入你的年收入,單位(萬):50根據你的年收入,計算出你的貧窮級別為:小康

對於service這個模組名稱,如果你覺得不好理解,那麼你可以在匯入的時候對其進行重新命名。

import service as poor_level  moneyYear = input("請收入你的年收入,單位(萬):")  ret = poor_level.judgeQLevel(int(moneyYear))  print(ret)

當前我們的模組中只有一個方法,直接匯入service即可,如果模組中有很多方法時,我們全部匯入就會導致比較大的資源消耗,這種情況下,我們可以選擇精確匯入我們所需要的方法。

from service import judgeQLevel  moneyYear = input("請收入你的年收入,單位(萬):")  ret = judgeQLevel(int(moneyYear))  print(ret)

這樣也可以:

from service import judgeQLevel as poor_level  moneyYear = input("請收入你的年收入,單位(萬):")  ret = poor_level(int(moneyYear))  print(ret)

高階用法:

使用__import__方法,import的本質就是呼叫這個方法。

__import__ 函式可用於匯入模組,import 語句也會呼叫函式。其定義為:

__import__(name[, globals[, locals[, fromlist[, level]]]])

引數介紹:

name (required): 被載入 module 的名稱

globals (optional): 包含全域性變數的字典,該選項很少使用,採用預設值 global()

locals (optional): 包含區域性變數的字典,內部標準實現未用到該變數,採用預設值 - local()

fromlist (Optional): 被匯入的 submodule 名稱

level (Optional): 匯入路徑選項,Python 2 中預設為 -1,表示同時支援 absolute import 和 relative import。Python 3 中預設為 0,表示僅支援 absolute import。如果大於 0,則表示相對匯入的父目錄的級數,即 1 類似於 '.',2 類似於 '..'。

poor_level = __import__('service')  moneyYear = input("請收入你的年收入,單位(萬):")  ret = poor_level.judgeQLevel(int(moneyYear))  print(ret)

等同於:

poor_level = __import__('service').judgeQLevel  moneyYear = input("請收入你的年收入,單位(萬):")  ret = poor_level(int(moneyYear))  print(ret)

當然importlib也是一個在模組管理中很好用的標準庫。

5
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 服務註冊到nacos失敗