#!/usr/bin/env python3.2 def f1(a, l=[]): l.append(a) return(l) print(f1(1)) print(f1(1)) print(f1(1)) def f2(a, b=1): b = b + 1 return(a+b) print(f2(1)) print(f2(1)) print(f2(1))
В
f1
аргументуl
присвоено значение по умолчанию, и он оценивается только один раз, поэтому трипечатают
вывод 1, 2 и 3. Почемуf2
не делает то же самое?Заключение:
Чтобы облегчить навигацию по тому, что я узнал для будущих читателей этой беседы, я резюмируйте следующим образом:
Я нашел этот хороший учебник по этой теме.
Я сделал несколько простых примеров программ , чтобы сравнить разницу между мутацией , повторным связыванием , копированием значения и присваиванием. оператор .