python之不要在函数中定义可变对象作为默认值 发表于 2018-09-03 分类于 python def f(a=[]): a.append(len(a)+1) print(a) print(id(a)) f() f() # output: [1] 140542070277688 [1, 2] 140542070277688 # 参数的默认值只会函数定义的时候初始化一次。 # 函数中的默认值为一个可变对象,对它的操作就和定位了指针地址一样,在内存里进行修改。而如果是不可变对象则会复制一份新的对象。