当再调用f(1)时,预计打印为 []
February 27, 2021 · View on GitHub
@author jackzhenguo
@desc
@tag
@version
@date 2020/02/22
默认参数设为空
含有默认参数的函数,如果类型为容器,且设置为空:
def f(a,b=[]): # NO!
print(b)
return b
ret = f(1)
ret.append(1)
ret.append(2)
当再调用f(1)时,预计打印为 []
f(1)
但是却为 [1,2]
这是可变类型的默认参数之坑,请务必设置此类默认参数为None:
def f(a,b=None): # YES! pass