Объяснить как работает изменяемый аргумент по умолчанию в функции

20. Объяснить как работает изменяемый аргумент по умолчанию в функции

Условие задачи Нужно сказать результат выполнения кода ниже и объяснить как он работает

def extendList(val, list=[]):
    list.append(val)
    return list

list1 = extendList(10)
list2 = extendList(123, [])
list3 = extendList('a')

print(f"{list1 = }")
print(f"{list2 = }")
print(f"{list3 = }")