Почему параметр функции не принимает значение по умолчанию?
def f(values, arr=[]):
for i in values:
if i % 2 == 0:
arr.append(i)
return len(arr)
print(f(range(4)) + f(range(5)))
Результат выполнения этого кода равен 7. Хотя по логике должен быть равен 5. Я обнаружил, что причина этого в том, что при вызове функции "f" все разы, кроме первого, параметру "arr" не присваивается пустой список по умолчанию, как указано в коде, но передаётся не удалившийся (почему-то) список, хранившийся в этом параметре при предыдущем вызове функции "f". Почему так? Или где об этом прочитать на русском?