Python 类型注解实战:让代码更可维护

Python 是动态语言,但这不意味着不需要类型。类型注解让 IDE 提示更准确、代码意图更清晰、重构更安全。 基础语法 # 变量注解 name: str = "Kada" age: int = 30 scores: list[float] = [9.5, 8.8, 9.2] # Python 3.9+ # 函数注解 def greet(name: str, times: int = 1) -> str: return f"Hello, {name}! " * times # 返回 None def log(message: str) -> None: print(message) 常用类型 from typing import Optional, Union, List, Dict, Tuple, Any # Optional:可以是 None def find_user(user_id: int) -> Optional[str]: ... # Union:多种类型之一(Python 3.10 可以用 X | Y) def process(data: Union[str, bytes]) -> str: ... # Python 3.10+ def process(data: str | bytes) -> str: ... # 字典和列表(Python 3.9+ 可以直接用小写) def get_config() -> dict[str, Any]: ... # Tuple:固定长度和类型 def get_coordinates() -> tuple[float, float]: ... TypedDict:给字典加类型 JSON 数据经常用字典传递,TypedDict 让字典有类型检查: from typing import TypedDict class UserInfo(TypedDict): id: int name: str email: str age: int | None # 可选字段 def create_user(info: UserInfo) -> None: print(info["name"]) # IDE 有提示,且知道是 str 类型 dataclass:更结构化的数据类 比 TypedDict 更进一步,dataclass 是带类型的数据容器: ...

2021-04-08 · 2 min · Kada Liao