Я думаю, многие люди видели функцию python, которая получает параметры по умолчанию. Например:
def foo(a=[]):
a.append(3)
return a
Если мы будем называть эту функцию с помощью foo(), то после вызова будет добавлено целое число "3".
Когда эта функция определена, объект функции с именем "foo" определяется в текущей среде, а также значения параметров по умолчанию оцениваются в это время. Каждый раз, когда функция вызывается без параметра, значение оцененного параметра будет изменено в соответствии с кодом.
Мой вопрос: , где этот оцениваемый параметр существует? Является ли он в объекте функции или находится в объекте метода при вызове функции? Поскольку все в python является объектом, должно быть место для привязки имени- > значения параметра 'a' → оцененный. Я передумал эту проблему?