2013-07-27 71 views
-1

查閱以下代碼:默認參數值

def f(x, myList = []): 
    myList.append(x) 
    return myList 

F(6)

返回[6]

F(7)

return [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]

爲什麼在後面的情況下,它採用默認的參數值,但不是在前一種情況下?

回答