Re: [問題] append 變數問題
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
04/24 19:51, 1F
→
04/24 20:49, , 2F
04/24 20:49, 2F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
問題
2
3