那我們先通過程序看看這個函數有什么坑吧!
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。