178

Python 関数のオプションの引数のデフォルト値として dict を指定したところ、pylint (Sublime パッケージを使用) から危険であることがわかりました。誰かがなぜこれが当てはまるのか説明できますか? 代わりに使用するより良い代替手段はありますNoneか?

4

2 に答える 2

234

例を見てみましょう:

def f(value, key, hash={}):
    hash[value] = key
    return hash

print(f('a', 1))
print(f('b', 2))

おそらく出力が期待されるもの:

{'a': 1}
{'b': 2}

しかし、実際には次のように出力されます。

{'a': 1}
{'a': 1, 'b': 2}
于 2014-10-12T01:26:17.870 に答える