查看以下代码:
def f(x, myList = []):
myList.append(x)
return myList
f(6)
返回 [6]
尽管
f(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]
f(7)
返回 [7]
为什么在后一种情况下它采用默认参数值但在前一种情况下不采用?