Sobes.tech
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

Так каждый вызов функции будет работать с новым списком.