python-函数的默认参数
2020-03-24 本文已影响0人
智齿_93fa
如果函数的默认参数为列表:
def power(l = []):
l.append(end)
power() //输出[end]
power() //输出[end, end]
调用了两次power(), 为什么第二次输出[end, end]?
因为列表里存放的是指向变量的指针,调用函数结束后,指针并没有释放,所以列表中还存放着指向end的指针,再次调用power(), 列表中再次插入新指针,所以出现两个end元素。
注意:函数的默认参数最好不要设定为列表、字典等可变类型,易引起上面错误。建议函数默认参数设定为数字、字符串、元组不可变类型。