作者ides13 (juso)
看板Python
標題Re: [問題] append 變數問題
時間Mon Apr 24 14:23:03 2017
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
→ freeunixer: id 就已經是在看址了,多做一次 hex 會比較潮嗎? 04/24 19:51
→ ides13: 了解,謝謝指教。我剛起步學,算是新手。 04/24 20:49