面试题:
-
def func(a,b=[]) 有什么陷阱?
因为b是可变类型,如果不传递参数时,默认使用的同一个内存地址
-
看代码写结果
def func(a,b=[]):b.append(a)return bl1 = 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]