0
を評価されます。はなぜPythonでのデフォルト値は一度だけ
def foo(a, my_list=[]):
my_list.append(a)
return my_list
次に、デフォルトのパラメータを渡すことなく、fooへの連続した各呼び出しは() "これに要素を追加します隠された "リストの間に残っているようです。
print(foo('a'))
print(foo('b'))
print(foo('c'))
この版画:
['a']
['a', 'b']
['a', 'b', 'c']
ですが、なぜでしょうか?これは反パターンのようです。これを避けるには、次のトリックを追加する必要があります。
def foo(a, my_list=None):
if my_list is None:
my_list = []
my_list.append(a)
return my_list