Python Ninja | Программирование
Фотография
Подвох с параметрами по умолчанию в Python
def add(item, items=[]):
items.append(item)
return items
add("apple") # ['apple']
add("banana") # ['apple', 'banana']
Почему так?
➡️ Важно помнить: значения по умолчанию создаются при определении функции, а не при каждом вызове.
Поэтому если использовать изменяемый объект (например, список), он будет один и тот же для всех вызовов.
✅ Правильный способ:
def add(item, items=None):
if items is None:
items = []
items.append(item)
return items
Теперь всё будет как ожидается 💡
✈ Python Ninja
3 · 593 ·