不,函数关键字参数默认值是在 定义 函数时 确定的 ,而不是在执行函数时确定的。
def perms(elements, setLength=None):
if setLength is None:
setLength = elements
如果需要能够指定None
作为参数,请使用其他哨兵值:
_sentinel = object()
def perms(elements, setLength=_sentinel):
if setLength is _sentinel:
setLength = elements
现在,呼叫者可以设置setLength
为None
,它将不会被视为默认设置。