Back to questions
Junior — Middle
52
Какое поведение ожидается, если в функции задать в качестве значения по умолчанию для аргумента пустой список?
Answer from AI
sobes.tech AI
Если в Python задать в качестве значения по умолчанию для аргумента функции пустой список ([]), этот список будет создан один раз при определении функции и использоваться во всех последующих вызовах без нового создания. Это значит, что если внутри функции изменять этот список (например, добавлять элементы), изменения сохранятся между вызовами функции.
Пример:
def append_to_list(value, my_list=[]):
my_list.append(value)
return my_list
print(append_to_list(1)) # Выведет: [1]
print(append_to_list(2)) # Выведет: [1, 2], а не [2]
Чтобы избежать такого поведения, обычно используют значение по умолчанию None и внутри функции создают новый список:
def append_to_list(value, my_list=None):
if my_list is None:
my_list = []
my_list.append(value)
return my_list
Это гарантирует, что при каждом вызове функции будет новый список.