1
Amy 原创整理|资料核验:2026-10-29
Python 官方教程说明,默认参数在函数定义时求值一次。若默认值是可变列表或字典,连续调用可能共用同一个对象。
教学示例:
def collect(item, bucket=None):
if bucket is None:
bucket = []
bucket.append(item)
return bucket
这个例子在未传入 bucket 时才建立新列表;显式传入列表时仍会修改该列表。Amy 建议排查“第二次调用结果变长”时,先看函数签名中有没有 [] 或 {} 默认值,再确认是否真的希望共享状态,别仅在调用后清空结果掩盖原因。