1

重複の可能性:
引数の値がデフォルトであるかユーザー指定であるかを知る方法はありますか?
python-デフォルト値を返します

Noneデフォルトのパラメータ値として使用するのはPythonの標準的な方法です。

Noneただし、クライアントコードが正当な引数値として使用される可能性がある場合、この慣用的な使用法はうまく機能しません。この場合、関数は、クライアントコードが引数を省略したかどうか、または明示的に渡されたかどうかを判断できませんNone。(運が良ければ)関数の動作が両方の場合で同じでなければならない場合を除いて、これは良くありません。

良い解決策は何ですか?

4

1 に答える 1

5
_NOT_SET = object()

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

すべてのクラスインスタンスには、区別できる一意のIDがありisます。

于 2012-10-23T04:33:37.097 に答える