python为什么会这样输出?print是一个参数,而def定义了两个参数。是怎么通过的?
在定义Python函数时,会计算默认参数L的值,即[],因为默认参数L也是一个变量,它指向对象[]。如果每次调用函数都改变L的内容,那么下次调用时默认参数的内容也会改变,函数定义时就不再是[]了。试着修改一下。
def?f(a,?L=[]):
l?=?l?还是?[]
l .追加(a)
回归?L
打印(f(1))
打印(f(2))
打印(f(3,[4]))