Python函数在定义的时候,默认参数L
的值就被计算出来了,即[]
,因为默认参数L
也是一个变量,它指向对象[]
,每次调用该函数,如果改变了L
的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]
了。如果是不可变对象,例如 L = 1 则每次记住的都是1
ps:为什么都是4呢 因为i是不可变变量,例如i原先指向0 ,range(1)是 i指向1,range(2)时,指向2以此类推最后指向4,所以最后都是4
定义默认参数要牢记一点:默认参数必须指向不变对象!
2023-08-05 09:45:04
Python函数在定义的时候,默认参数L
的值就被计算出来了,即[]
,因为默认参数L
也是一个变量,它指向对象[]
,每次调用该函数,如果改变了L
的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]
了。如果是不可变对象,例如 L = 1 则每次记住的都是1
ps:为什么都是4呢 因为i是不可变变量,例如i原先指向0 ,range(1)是 i指向1,range(2)时,指向2以此类推最后指向4,所以最后都是4
定义默认参数要牢记一点:默认参数必须指向不变对象!