Python(55)_默认参数的陷阱
Posted sunnybowen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python(55)_默认参数的陷阱相关的知识,希望对你有一定的参考价值。
#-*-coding:utf-8-*- \'\'\' 函数复习 \'\'\' def f(): return \'bowen\' print(2+3) # 事实上python中会调用内部的函数,相当于add() print(f()) def wahaha(*args): print(args) wahaha(1,2,3) l = [1,2,3] wahaha(*l) \'\'\' 默认参数的陷阱 如果默认参数的值是一个可变数据类型,那么每一次调用的时候,不传值就公用这个数据类型的资源 简单的说,就是不传值的情况下,始终操作的都是同一个字典或者列表 \'\'\' def qqxing(l=[]):# 默认参数 l.append(1) print(l) qqxing() # [1] qqxing() # [1, 1] qqxing([]) # [1] qqxing() # [1, 1, 1] 用的是第二个调用时的列表 def ee(k,l={}): l[k] = \'v\' print(l) ee(1) # {1: \'v\'} ee(2) # {1: \'v\', 2: \'v\'} ee(3) # {1: \'v\', 2: \'v\', 3: \'v\'}
以上是关于Python(55)_默认参数的陷阱的主要内容,如果未能解决你的问题,请参考以下文章