我在下面看到了Python代码,它显示了一个意想不到的行为。
def extendList(val, list=[] ):
list.append(val)
return list
list1 = extendList(10)
print "value of list1 before = %s" % list1
list2 = extendList(123,[])
list3 = extendList('a')
print "value of list1 after = %s" % list1
据我所知,此代码的预期输出应为:
value of list1 before = [10]
value of list1 after = [10]
此代码的实际输出为:
value of list1 before = [10]
value of list1 after = [10, 'a']
我不确定为什么list1
会在分配list3后更改其值,并将'a'
附加到其当前值[10]
。