Re: [問題] append 變數問題

看板Python作者 (juso)時間8年前 (2017/04/24 14:23), 8年前編輯推噓0(002)
留言2則, 2人參與, 最新討論串2/2 (看更多)
list1 執行時 extendlist function 會產生一個變量list, 並且使用一個記憶體空間。 list3 執行時,使用相同的變量list的記憶體空間。 因此,list1和list3會值會相同。 hex(id(list1))和hex(id(list3)),具有相同的記憶體位置。 可以試試下面的程式碼。 def extendList(val,list=[]): list.append(val) return list list1=extendList(10) print ("list 1= %s" % list1) print(hex(id(list1))) list2=extendList(123,[]) print ("list 2= %s" % list2) print(hex(id(list2))) list3=extendList('a') print ("list 3= %s" % list3) print(hex(id(list3))) print ("111111111111111111111111111111111111111") print ("list 1= %s" % list1) print ("list 2= %s" % list2) print ("list 3= %s" % list3) print ("list = %s" % extendList("")) print(hex(id(extendList("")))) http://tinyurl.com/l6rp9gn -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.32.131 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1493014987.A.5F0.html ※ 編輯: ides13 (220.133.32.131), 04/24/2017 14:28:24

04/24 19:51, , 1F
id 就已經是在看址了,多做一次 hex 會比較潮嗎?
04/24 19:51, 1F

04/24 20:49, , 2F
了解,謝謝指教。我剛起步學,算是新手。
04/24 20:49, 2F
文章代碼(AID): #1O_PdBNm (Python)
文章代碼(AID): #1O_PdBNm (Python)