[問題] append 變數問題

看板Python作者 (射手座)時間8年前 (2017/04/24 13:15), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/2 (看更多)
新手 幾乎沒寫過python def extendList(val,list=[]): list.append(val) return list list1=extendList(10) list2=extendList(123,[]) list3=extendList('a') print "list 1= %s" % list1 print "list 2= %s" % list2 print "list 3= %s" % list3 這段code list 1 並沒有給第二個參數 此時系統會自動給一個list 給他?? 所以結果才是 list 1= [10, 'a'] list 2= [123] list 3= [10, 'a'] -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.8.36.186 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1493010902.A.6B7.html

04/24 15:35, , 1F
mutable object as default argument
04/24 15:35, 1F

04/24 15:38, , 2F

04/28 08:36, , 3F
把預設參數設為 None ,在邏輯裡面檢查為 None 再去賦值
04/28 08:36, 3F
文章代碼(AID): #1O_OdMQt (Python)
文章代碼(AID): #1O_OdMQt (Python)