Python 簡易手冊
單元 68 - 模組與 import 陳述
Python 檔案就是模組 (module) ,這意思是說,程式中可以利用關鍵字 (keyword) import 引入任一檔案,然後利用引入檔案中的相關定義,例如有以下的 Python 程式
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 設定變數 a = 0 b = 1 # 定義函數 def do_something(): return 2 # 檔名: module_demo.py # 說明: 《Python簡易手冊》的範例 # 網址: http://kaiching.org # 作者: Kaiching Chang # 時間: 2024 年 3 月 |
單元 44 - 函數與 return 陳述介紹如何定義函數 (function) 。
上例簡單定義兩個變數及一個函數,以下 Python 程式放在同一個路徑下示範如何利用 module_demo 的定義
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | # 只用 import 引入模組 import module_demo # 必須連用模組名稱 print(module_demo.a) print(module_demo.b) print(module_demo.do_something()) # 直接引入名稱 from module_demo import a, b, do_something # 直接使用名稱 print(a) print(b) print(do_something()) # 引入名稱並改名 from module_demo import a as A from module_demo import b as B from module_demo import do_something as C # 使用改名後的名稱 print(A) print(B) print(C()) # 檔名: module_demo2.py # 說明: 《Python簡易手冊》的範例 # 網址: http://kaiching.org # 作者: Kaiching Chang # 時間: 2024 年 3 月 |
以上共分成三組,第一組是只有使用 import ,這在使用相關定義都要連用 module_demo 來呼叫
1 2 3 4 5 6 7 | # 只用 import 引入模組 import module_demo # 必須連用模組名稱 print(module_demo.a) print(module_demo.b) print(module_demo.do_something()) |
第二組是用 from 加上 import 直接引入名稱,這樣可以直接使用引入模組定義的名稱
9 10 11 12 13 14 15 | # 直接引入名稱 from module_demo import a, b, do_something # 直接使用名稱 print(a) print(b) print(do_something()) |
如果是要像以上一次引入所有名稱,也可以在 import 之後改成星號
9 10 | # 直接引入所有名稱 from module_demo import * |
不過一般是需要哪些定義就引入哪些定義,這樣的程式更容易閱讀。
第三組則是如果有名稱衝突,或是其他需求,直接引入名稱後可以再接上 as 來取別名,之後在程式中就要使用別名來呼叫
17 18 19 20 21 22 23 24 25 | # 引入名稱並改名 from module_demo import a as A from module_demo import b as B from module_demo import do_something as C # 使用改名後的名稱 print(A) print(B) print(C()) |
此例執行結果如下
> python module_demo2.py |
0 1 2 0 1 2 0 1 2 |
> |
使用標準程式庫程式庫 (standard library) 或以 pip 指令安裝的第三方程式庫 (third party library) 的方式都跟上述一樣。