3

私は通常、ほとんどの人が次のような関数またはメソッドでデフォルトの引数値を管理していることに遭遇します。

def foo(L=None):
  if L is None:
    L = []

しかし、私は他の人が次のようなことをしているのを見ます:

def foo(L=None):
  L = L or []

何かが欠けているかどうかはわかりませんが、ほとんどの人が2番目のアプローチではなく最初のアプローチを使用するのはなぜですか? それらは同じものですか?、2 番目の方が明確で短いようです。

4

3 に答える 3

0

たぶん、彼らは2番目のものを知りませんか?私は最初のものを使用する傾向があります。

実は違いがあります。2 つ目は、ブール値 false に評価されるものを渡すと、L = [] になります。0 空文字列など。最初のものは、L が渡されないか、None として渡された場合にのみそれを行います。

于 2013-05-05T16:36:50.710 に答える