范围是您所期望的。
可能令人惊讶的是,默认值仅计算一次并重新使用,因此每次调用该函数时,您将获得相同的列表,而不是初始化为[]的新列表。
该列表存储在中
f.func_defaults。
def f(a, L=[]): L.append(a) return Lprint f(1)print f(2)print f(3)print f.func_defaultsf.func_defaults = (['foo'],) # Don't do this!print f(4)
结果:
[1][1, 2][1, 2, 3]([1, 2, 3],)['foo', 4]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)