跳转至

函数、参数与返回值

函数用 def 定义。没有显式 return 时,函数返回 None

def add(left: int, right: int) -> int:
    return left + right

类型标注用于表达接口和帮助工具检查;Python 默认不会在运行时强制校验标注。

默认参数不要使用可变对象

下面写法会在多次调用间共享同一个列表:

# 错误示例
def add_tag(tag, tags=[]):
    tags.append(tag)
    return tags

应使用 None 作为哨兵,在函数内创建新对象:

def add_tag(tag: str, tags: list[str] | None = None) -> list[str]:
    if tags is None:
        tags = []
    tags.append(tag)
    return tags

关键字参数使调用更清楚;*args**kwargs 适合确有可变参数需求时使用,不应代替明确的函数签名。

参考

评论