На каком уровне выполняется default
Python
Middle
Без компании
На каком уровне выполняется default
Ответы
В Python `default` может относиться к разным контекстам, но чаще всего это параметр по умолчанию в функциях или аргументах.
**Уровень выполнения:**
Параметры по умолчанию вычисляются **один раз** — при определении функции (на этапе компиляции). Это значит, что изменяемые объекты (например, списки или словари) сохраняются между вызовами.
**Пример:**
```
def add_item(item, lst=[]): # lst создаётся при определении функции
lst.append(item)
return lst
print(add_item(1)) # [1]
print(add_item(2)) # [1, 2] # Ожидали [2]? Неправильно!
```
**Решение:**
Используйте `None` и проверку внутри функции:
```
def add_item(item, lst=None):
if lst is None:
lst = []
lst.append(item)
return lst
```
**Вывод:**
`default`-значения обрабатываются на уровне **определения функции**, а не её вызова.