如果函數(shù)的默認(rèn)參數(shù)為列表:
def power(l = []):
l.append(end)
power() //輸出[end]
power() //輸出[end, end]
調(diào)用了兩次power(), 為什么第二次輸出[end, end]?
因?yàn)榱斜砝锎娣诺氖侵赶蜃兞康闹羔?,調(diào)用函數(shù)結(jié)束后,指針并沒有釋放,所以列表中還存放著指向end的指針,再次調(diào)用power(), 列表中再次插入新指針,所以出現(xiàn)兩個(gè)end元素。
注意:函數(shù)的默認(rèn)參數(shù)最好不要設(shè)定為列表、字典等可變類型,易引起上面錯(cuò)誤。建議函數(shù)默認(rèn)參數(shù)設(shè)定為數(shù)字、字符串、元組不可變類型。