我知道默认参数是在函数初始化时创建的,而不是在每次调用函数时创建的。请参见以下代码:
def ook (item, lst=[]):
lst.append(item)
print 'ook', lst
def eek (item, lst=None):
if lst is None: lst = []
lst.append(item)
print 'eek', lst
max = 3
for x in xrange(max):
ook(x)
for x in xrange(max):
eek(x)
我不明白的是为什么要这样实施。与每次调用时的初始化相比,此行为提供什么好处?