python基础问题。为什么下面的代码得到输出是这样。 代码: def func(a=[]):

2025-03-10 12:15:15
推荐回答(2个)
回答1:

这个就是python里面的坑了 函数的默认参数是一个list 当第一次执行的时候实例化了一个list 第二次执行还是用第一次执行的时候实例化的地址存储 所以三次执行的结果就是 [1, 1, 1] 想每次执行只输出[1] ,默认参数应该设置为None

回答2:

def func(*args):
data = list(*args)
data.append(0)
return data
print(func())
print(func([1]))
print(func())
print(func([1]))
print(func())