Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Тема
Описание
Доп.

Ловушка в Python, которую часто называют "Mutable Default Argument" (изменяемый аргумент по умолчанию).

В Python аргументы по умолчанию вычисляются только один раз — в момент определения функции, а не при каждом ее вызове.

Поскольку список (list) — это изменяемый тип данных, метод .append() модифицирует тот самый единственный объект, который был создан в самом начале.

def func(n=[]):
    n.append("Hello")
    print(n)


func()
func()
func()

'''
['Hello']
['Hello', 'Hello']
['Hello', 'Hello', 'Hello']
'''