重複の可能性:
Pythonの「驚き最小の原則」:
奇妙な動作を拡張する可変デフォルト引数リスト
メソッド名を使用したピラミッドトラバーサルビュールックアップ
私がこの関数を持っているとしましょう:
def a(b=[]):
b += [1]
print b
それを呼び出すと、次の結果が得られます。
>>> a()
[1]
>>> a()
[1, 1]
>>> a()
[1, 1, 1]
に変更b += [1]
するb = b + [1]
と、関数の動作が変わります。
>>> a()
[1]
>>> a()
[1]
>>> a()
[1]
とどうb = b + [1]
違うのb += [1]
?なぜこれが起こるのですか?