Back to questions
Junior — Middle
69
Почему не рекомендуется задавать пустой список в качестве значения по умолчанию для параметра функции?
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] — список сохраняется между вызовами
Чтобы избежать этого, лучше использовать значение по умолчанию None и создавать новый список внутри функции:
def append_to_list(value, my_list=None):
if my_list is None:
my_list = []
my_list.append(value)
return my_list
Так каждый вызов функции будет работать с новым списком.