Списки являются изменчивыми объектами; Вы можете изменить их содержимое. Правильный способ получить список по умолчанию (или словарь, или набор) - создать его во время выполнения внутри функции:

жный дубликат:
«Наименьшее удивление» в Python: изменчивый аргумент по умолчанию

Я смущен тем, как необязательные параметры работают в функциях / методах Python.

У меня есть следующий блок кода:

>>> def F(a, b=[]):
...     b.append(a)
...     return b
...
>>> F(0)
[0]
>>> F(1)
[0, 1]
>>>

ПочемуF(1) возвращается[0, 1] и нет[1]?

Я имею в виду,что происходит внутри?