Python·100 питань

Чому небезпечно писати def f(x, arr=[])?

Відповідь
Значення за замовчуванням обчислюється один раз при визначенні функції.
Список буде спільним між викликами.
Правильно: def f(x, arr=None): arr = arr or [].
Те саме для dict/set.
Це класична пастка Python.
Чи корисна ця відповідь?

Інші питання цієї теми

Пов’язані питання з інших тем