1

可能重复:
有什么方法可以知道参数的值是默认值还是用户指定的值?
python - 返回一个默认值

在 Python 中,将None其用作默认参数值是标准做法。

None但是,如果客户端代码可以用作合法的参数值,这种惯用用法就不能很好地工作。在这种情况下,函数无法判断客户端代码是否省略了参数,或者是否显式传递了None. 这不好,除非(幸运地)函数的行为在两种情况下应该是相同的。

什么是好的解决方案?

4

1 回答 1

5
_NOT_SET = object()

def some_function(some_arg=_NOT_SET):
    if some_arg is _NOT_SET:
        # ...

任何类实例都有一个is可以区分的唯一标识。

于 2012-10-23T04:33:37.097 回答