次のコードを確認してください。
def f(x, myList = []):
myList.append(x)
return myList
f(6)
[6]を返します
その間
へ(7)
[6, 7] を返します
私の質問は、値が指定されていないときにデフォルトの myList 値を使用しない理由です。
一方、このコードは正常に動作します
def f(x, myList = None):
if myList == None:
# This WILL allocate a new list on every call to the function.
myList = []
myList.append(x)
return myList
f(6)
[6]を返します
へ(7)
[7]を返します
後者の場合はデフォルトの引数値を取るのに、前者の場合は取らないのはなぜですか?