Python中有一个函数:
def to_list(val, default_list=[]):
default_list.append(val)
return default_list
我有点困惑,因为
print(to_list('a'))
print(to_list('v'))
相应地返回:
['a']
['a', 'v']
为什么列表default_list
中包含上次调用保存的内容(包含'a'
)?毕竟,函数的作用域在其执行后被清除。在default_list
第一次调用之后,这个范围的一部分应该已经被清除了。不是?他为什么活下来?
谢谢。