python的默认参数
刚在群里一个人问的问题,前两天正好看过,记录一下。__author__ = 'chenyu'def f(i,L=[]):L.append(i)return Ldef f2(i,L=None):if L is None:L = []L.append(i)return Lprint f(1)print f(2)print f(3)print f2(1)print f2(2)print f2(3)输出:[1][1, 2][1, 2, 3][1][2][3]按照预想的结果f()输出的应该是[1],[2],[3],但是每次上次的结果都被保留下来了。造成这样的原因是python支持函数中的参数默认值是一个可变的list, 函数体内修改了原来的默认值,而python会将修改后的值一直保留,并作为下次函数调用时的参数默认值。
补充:Web开发 , Python ,