Всем привет, сегодня столкнулся с интересной вещью, в виде вывода этой программы:
def func(element, array = []):
array.append(element)
return array
print(func(1))
print(func(2))
print(func(3))
print(func(4))
Результат:
>> [1]
>> [1, 2]
>> [1, 2, 3]
>> [1, 2, 3, 4]
По-быстрому полистал учебник Лутца, но даже не нашел в какой теме это искать, кто может попробовать объяснить, как вообще происходит эта магия? Где хранится значение array , почему оно не обнуляется при каждом вызове функции? Если вы знаете что искать по этому вопросу - буду так же рад наименованием тегов вопроса)
Всем заранее спасибо