新手指南:Python 型別註記(Type Hinting)
更新日期: 2024 年 9 月 16 日
Python 是一種動態語言,這意味著變數的型別在運行時才確定。
然而,為了讓代碼更具可讀性和易於維護,Python 3.5 引入了型別註記(Type Hinting),讓開發者可以明確指定變數、參數和返回值的類型。
什麼是型別註記?
型別註記不會改變 Python 的動態特性,但能幫助開發者和工具檢查類型。以下是如何使用型別註記的基本語法:
def add(x: int, y: int) -> int:
return x + y
在這裡,x
和 y
被指定為 int
型別,函數返回值也是 int
。
使用型別註記的好處
- 可讀性:其他開發者能夠快速理解函數預期的輸入和輸出類型。
- 靜態檢查:使用工具如 mypy 可以在編寫代碼時檢查型別錯誤。
常見型別註記
- 基本數據類型:如 int、str、float。
- 複雜結構:如 List[int]、Dict[str, int]。
- Optional:表示值可以為 None,如 Optional[int]。
例子:帶有複合類型的型別註記
from typing import List
def get_average(scores: List[int]) -> float:
return sum(scores) / len(scores)
這裡,scores 是一個整數列表,函數返回一個 float。
型別註記不會影響運行
型別註記只是輔助工具,它不會影響 Python 解釋器運行代碼。
即使指定了型別,但傳入了錯誤類型,代碼仍然可以執行,但可能會導致意外行為。
def greet(name: str) -> str:
return f"Hello, {name}!"
# 即使傳入了整數,Python 仍然會執行
print(greet(123)) # 輸出 "Hello, 123!"
常用工具:mypy
為了確保型別註記正確使用,開發者可以使用靜態檢查工具如 mypy。
這些工具會在編譯前,檢查型別是否正確,幫助開發者發現潛在的錯誤。
如何使用 mypy
- 安裝 mypy:
pip install mypy
- 檢查型別:
mypy your_script.py
這會顯示型別錯誤,幫助你在運行代碼前修正問題。
結語
型別註記是 Python 提高代碼可讀性和安全性的強大工具,特別適合於大型項目或團隊合作。
透過型別註記和工具如 mypy,你可以在保持 Python 動態性的同時,獲得類似靜態語言的型別檢查功能,從而減少錯誤、提高效率。