Задать вопрос

Почему сохраняется значение переменной в функции?

Здраствуйте!
Есть следующий Пайтон-код

bar = []
def foo(bar=[]):
   bar.append(1)
   return bar

print(foo())
print(foo())
print(foo())


output:
[1]
[1, 1]
[1, 1, 1]


Почему при использовании (bar=[]) при вызове функции сохраняются предыдущие значения?
А вот в глобальной переменной ничего не меняется? Тоесть
print(bar)
output:
[]
Как это обьяснить и где о таких нюансах можно почитать? Спасибо!
  • Вопрос задан
  • 2979 просмотров
Подписаться 3 Оценить Комментировать
Решение пользователя Cenness К ответам на вопрос (4)
Cenness
@Cenness
Комментировать