35、def func(a,b=[]) 這種寫法有什么坑?


那我們先通過程序看看這個函數有什么坑吧!

def func(a,b=[]):
    b.append(a)
    print(b)
func(1)
func(1)
func(1)
func(1)

看下結果

  [1]
  [1, 1]
  [1, 1, 1]
  [1, 1, 1, 1]

函數的第二個默認參數是一個list,當第一次執行的時候實例化了一個list,第二次執行還是用第一次執行的時候實例化的地址存儲,所以三次執行的結果就是 [1, 1, 1] ,想每次執行只輸出[1] ,默認參數應該設置為None。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM