作者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://webptt.com/cn.aspx?n=bbs/Python/M.1493014987.A.5F0.html
※ 编辑: ides13 (220.133.32.131), 04/24/2017 14:28:24
1F:→ freeunixer: id 就已经是在看址了,多做一次 hex 会比较潮吗? 04/24 19:51
2F:→ ides13: 了解,谢谢指教。我刚起步学,算是新手。 04/24 20:49