Разница между оператором мутации, повторной привязки, копирования значения и присваивания

#!/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 не делает то же самое?

Заключение:

Чтобы облегчить навигацию по тому, что я узнал для будущих читателей этой беседы, я резюмируйте следующим образом:

  • Я нашел этот хороший учебник по этой теме.

  • Я сделал несколько простых примеров программ , чтобы сравнить разницу между мутацией , повторным связыванием , копированием значения и присваиванием. оператор .

9
задан qazwsx 31 January 2012 в 21:27
поделиться