最近,我去了一個Python開發人員職位的求職面試。以下代碼是其中一個問題。我只需要寫輸出。有人可以向我解釋這個非常基本的Python代碼嗎?
def extendList(val,list=[]):
list.append(val)
return list
list1 = extendList(10)
list2 = extendList(123,[])
list3 = extendList('a')
print "list1 = %s " %list1
print "list2 = %s " %list2
print "list2 = %s " %list3
輸出是:
list1 = [10, 'a']
list2 = [123]
list2 = [10, 'a']
我試圖理解爲什麼第一個列表,list1
,有'a'
值。
編輯
我檢查了所有的聯繫,並找到了其begginers蟒蛇「疑難雜症」,而是要感謝的答案,不容選擇既如此i'm與第一個去。
[這個規範答案](http://stackoverflow.com/questions/1132941/least-astonishment-in-python-the-mutable-default-argument)應該幫助 – 2015-01-26 21:46:07
http://stackoverflow.com/q的副本uestions/1132941/python-the-mutable-default-argument中的至少一個驚訝 – davidism 2015-01-26 21:46:43
僅僅因爲它的措詞不同,並沒有使它成爲一個不同的問題。 – davidism 2015-01-26 21:48:04