python为什么会这样输出?print是一个参数,而def定义了两个参数。是怎么通过的?

在定义Python函数时,会计算默认参数L的值,即[],因为默认参数L也是一个变量,它指向对象[]。如果每次调用函数都改变L的内容,那么下次调用时默认参数的内容也会改变,函数定义时就不再是[]了。试着修改一下。

def?f(a,?L=[]):

l?=?l?还是?[]

l .追加(a)

回归?L

打印(f(1))

打印(f(2))

打印(f(3,[4]))