函数的默认参数只初始化一次

函数的默认值只会创建一次,之后不会再变了,使用对象(列表、字典、实例)作为默认值,会导致函数混乱

def f(a, L=[]):
    L.append(a)
    return L
for i in range(3):
    print f(i)
# 输出
[0]
[0, 1]
[0, 1, 2]
  • 规避方法
def f(a, t=None):
    t = t or []
    t.append(a)
    return t

印光大师十念法(胡小林主讲第1集)
http://v.youku.com/v_show/id_XMzUwMzc4NzY4NA

posted @ 2018-03-30 17:55  妙音  阅读(209)  评论(0编辑  收藏  举报