01 看代码写结果 函数参数使用可变数据 有什么陷阱
面试题:
-
def func(a,b=[]) 有什么陷阱?
因为b是可变类型,如果不传递参数时,默认使用的同一个内存地址
-
看代码写结果
def func(a,b=[]): b.append(a) return b l1 = func(1) l2 = func(2,[11,22]) #先打印:[11,22] ,在打印2 l3 = func(3) # [1,3] [11,22,2] [1,3] print(l1,l2,l3)
-
看代码写结果
def func(a,b=[]): b.append(a) print(b) func(1) func(2,[11,22,33]) func(3) # [1] [11,22,33,2] [1,3]