lambda函数对象与作用域 (重点)

Python函数在定义的时候,默认参数L的值就被计算出来了,即[],因为默认参数L也是一个变量,它指向对象[],每次调用该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了。如果是不可变对象,例如 L = 1 则每次记住的都是1

 

 

 ps:为什么都是4呢 因为i是不可变变量,例如i原先指向0 ,range(1)是 i指向1,range(2)时,指向2以此类推最后指向4,所以最后都是4

 

 

 


 

 定义默认参数要牢记一点:默认参数必须指向不变对象!

 

 

posted @ 2018-03-06 23:46  大明-两京一十三省  阅读(393)  评论(0编辑  收藏  举报