1.函数
- 1.1 参数
- 当默认参数的值为可变类型时慎用
# 不推荐使用以下代码 def func(data, value=[]):pass
- 可以将默认参数的值改为None
# 推荐使用以下代码 def func(data, value=None):if not value:value = []
- 案例
def func(data, value=[]):value.append(data)return valuev1 = func(1) # [1,] v2 = func(1, [11, 22, 33]) # [11, 22, 33, 1] 没有使用默认的列表,而是传了一个新的列表 print(v1, v2) v3 = func(2) print(v3) # 结果不是[2] 而是[1, 2] ,因为以默认列表的形式传递2时,value已经是[1]了。参考函数的执行空间
def func(data, value=[]):value.append(data)return valuev1 = func(1) print(v1) # [1] v2 = func(2) print(v2, v1) # [1, 2] [1, 2]