Python 型別提示完整教學
Python 是動態型別語言,但從 Python 3.5 開始引入 Type Hints,讓靜態分析工具能夠在執行前抓到型別錯誤。
基礎語法
def greet(name: str, times: int = 1) -> str:
return name * times
numbers: list[int] = [1, 2, 3]
data: dict[str, int] = {'a': 1, 'b': 2}
泛型與 Union
from typing import TypeVar, Generic, Union
T = TypeVar('T')
def first(items: list[T]) -> T:
return items[0]
def parse(value: Union[str, int]) -> int:
return int(value)
Dataclasses
from dataclasses import dataclass
@dataclass
class User:
name: str
email: str
age: int = 0
is_active: bool = True
Pydantic 資料驗證
from pydantic import BaseModel, EmailStr
class CreateUserRequest(BaseModel):
name: str
email: EmailStr
age: int
工具鏈建議
- mypy:靜態型別檢查
- pyright:VS Code 整合的型別檢查
- ruff:快速 linting