贝利信息

默认参数是什么_如何为函数设置默认值【教程】

日期:2026-01-25 00:00 / 作者:紅蓮之龍
Python函数默认参数在定义时求值一次,可变对象作默认值会导致状态污染;应使用None判空并重建对象,且无默认值参数须在有默认值参数之前。

Python 函数的默认参数不是“可有可无的装饰”,而是直接影响调用逻辑和对象生命周期的关键机制;设错默认值(比如用 []{})会导致意外的跨调用状态污染。

默认参数在函数定义时就完成求值

Python 中所有默认参数表达式,在函数被定义(def 语句执行)时即求值一次,而不是每次调用时重新计算。这意味着可变对象(如列表、字典)作为默认值会持续复用。

None 是最安全的默认占位符

当需要“无值”语义且允许传入空列表、空字典等合法值时,None 是唯一可靠的选择。它不参与业务逻辑,只作存在性判断。

位置参数不能跟在带默认值的参数后面

Python 语法强制要求:所有不带默认值的形参必须出现在带默认值的形参之前。否则报 SyntaxError: non-default argument follows default argument

默认参数看着简单,真正麻烦的是它把“定义时”和“运行时”的边界悄悄抹平了;只要记住“可变对象别直接当默认值”“没值就用 None 判”“顺序不能乱”,就能避开绝大多数坑。