1. 程式人生 > >python中的一些坑(待補充)

python中的一些坑(待補充)

use fault none bsp lis ble list one table

函數默認參數使用可變對象

def use_mutable_default_param(idx=0, ids=[]):
    ids.append(idx)
    print(idx)
    print(ids)
use_mutable_default_param(idx=1)
use_mutable_default_param(idx=2)

輸出

1
[1]
2
[1, 2]

函數本身也是一個對象,默認參數綁定於這個函數對象上

append這類方法會直接修改對象,所以下次調用此函數時,其綁定的默認參數已經不再是空list了

def donot_use_mutable_default_param(idx=0, ids=None):
    
if ids is None: ids = [] ids.append(idx) print(idx) print(ids)

python中的一些坑(待補充)