def f(a, L=[]): L.append(a) return L
Почему в этой функции значение L сохраняется при последующих вызовах функции, если отсутствует второй аргумент?
>>> f(1) [1] >>> f(3) [1, 3] >>> f(5) [1, 3, 5]
def f(a, L=None): if L is None: L = [] L.append(a) return L
то при при вызовах функция начинает работать правильно, и значение L при последующих вызовах обнуляется?
>>> f(3) [3] >>> f(5) [5] >>> f(7) [7]