python-函數的默認參數

如果函數的默認參數為列表:

def power(l = []):
    l.append(end)

power() //輸出[end]
power() //輸出[end, end]

調用了兩次power(), 為什么第二次輸出[end, end]?
因為列表里存放的是指向變量的指針,調用函數結束后,指針并沒有釋放,所以列表中還存放著指向end的指針,再次調用power(), 列表中再次插入新指針,所以出現兩個end元素。

注意:函數的默認參數最好不要設定為列表、字典等可變類型,易引起上面錯誤。建議函數默認參數設定為數字、字符串、元組不可變類型。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容