新手指南:Python 型別註記(Type Hinting)

更新日期: 2024 年 9 月 16 日

Python 是一種動態語言,這意味著變數的型別在運行時才確定。

然而,為了讓代碼更具可讀性和易於維護,Python 3.5 引入了型別註記(Type Hinting),讓開發者可以明確指定變數、參數和返回值的類型。

什麼是型別註記?

型別註記不會改變 Python 的動態特性,但能幫助開發者和工具檢查類型。以下是如何使用型別註記的基本語法:

def add(x: int, y: int) -> int:
    return x + y

在這裡,xy 被指定為 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

  1. 安裝 mypy:
pip install mypy
  1. 檢查型別:
mypy your_script.py

這會顯示型別錯誤,幫助你在運行代碼前修正問題。

結語

型別註記是 Python 提高代碼可讀性和安全性的強大工具,特別適合於大型項目或團隊合作。

透過型別註記和工具如 mypy,你可以在保持 Python 動態性的同時,獲得類似靜態語言的型別檢查功能,從而減少錯誤、提高效率。

Similar Posts