Dear All:
各位程式碼越寫越多,我們考慮到的不只是程式碼能不能動,之外還要考慮到後續的維護性。
就讓我來介紹 Modules and Package,接下來我會一一介紹什麼是模組這個方便的東西!
Python 中的模組其實就是一個 Python 檔案,裡面可以包含函式、類別、變數等等。你可以把這個檔案引入到其他程式裡,讓你的程式碼更有重複利用的價值。
範例:
假設你有一個名叫 my_module.py 的模組,內容是這樣的:
# my_module.py
def greet(name):
return f"Hello, {name}!"
PI = 3.14159
接著你可以在另一個檔案中使用這個模組:
# main.py
import my_module
print(my_module.greet("Alice"))
print(f"圓周率的值是:{my_module.PI}")
這樣是不簡潔很多!不用所有東西都塞到同一個檔案內。
套件就是一個目錄,裡面包含了多個模組,並且會有一個 init.py 檔案。這個檔案告訴 Python 這是一個套件,能夠讓你把相關的模組組織起來,變得更有條理。
範例:
假設你有一個目錄結構長這樣:
my_package/
__init__.py
module1.py
module2.py
# module1.py
def function1():
return "這是來自模組1的函式1"
# module2.py
def function2():
return "這是來自模組2的函式2"
現在,如果你執行:
# main.py
from my_package import module2
print(module2.function2())
你會看到 function2 把 module1 裡的 function1 也一起用了。
為了讓大家更好理解模組和套件的運作,這裡畫個簡單的結構圖:
my_package/ <- 套件目錄
__init__.py <- 套件初始化檔案
module1.py <- 模組1
module2.py <- 模組2
main.py <- 匯入套件的主程式
每個 Python 模組都有一個特殊變數 name。當模組直接執行時,name 的值會是 "main"。這在你只想要某些程式碼在模組被執行時運行(而不是匯入時)特別有用。
範例:
# my_module.py
def greet(name):
return f"Hello, {name}!"
if __name__ == "__main__":
print(greet("World")) # 這段程式只會在 my_module.py 被直接執行時跑
當你直接執行 my_module.py,它會印出 "Hello, World"。但是如果你從另一個程式中匯入它,這段程式碼就不會執行。
Python 有很多強大的第三方套件可以使用,這些套件都在 Python Package Index (PyPI) 上。你可以透過 pip 來安裝它們。
安裝範例:
pip install requests
安裝後,你就可以在你的程式裡匯入這個套件來使用:
import requests
response = requests.get("https://api.github.com")
print(response.json())