TGViewer
Python вопросы с собеседований Python вопросы с собеседований @python_job_interview · 24.9K subscribers
Post #1275 3.54K
🐍 Хитрая задача с собеседования по Python

> Что выведет этот код и почему?


def extend_list(val, lst=[]):
lst.append(val)
return lst

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

print(list1, list2, list3)


❓Вопрос: Почему list1 и list3 одинаковы?

🔍 Разбор:

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

Поэтому lst=[] создаётся один раз и сохраняется между вызовами, если вы не передали свой список явно.

🧠 Что произойдет:

- extend_list(10) → использует общий список [], теперь он [10]

- extend_list(123, []) → создаёт новый список [123]

- extend_list('a') → снова использует общий список → [10, 'a']

👉 Результат:

[10, 'a'] [123] [10, 'a']

✅ Как исправить:

Если вы хотите, чтобы по умолчанию создавался новый список при каждом вызове, делайте так:


def extend_list(val, lst=None):
if lst is None:
lst = []
lst.append(val)
return lst


Это классическая ловушка Python-интервью - mutable default arguments.

Проверяет, понимаешь ли ты, как работают значения по умолчанию и область памяти.
  • 🔥 16
  • ❤ 2
More from @python_job_interview
  1. Sep 23, 2026Визуализация данных на Python: 10 лучших примеров с кодом Визуализация данных на Python -…
  2. Sep 22, 2026Как правильно получить случайное число в Python Если нужен диапазон от 1 до 100 включитель…
  3. Sep 19, 2026✔️ Кто подключился к вашей сети? NetAlertX обнаруживает устройства и уведомляет об изменен…
  4. Sep 18, 2026✔️ QuiverAI выпустила обновление генератора векторной графики Во второе поколение семейств…
  5. Sep 17, 2026📚 Бесплатная книга по математике для Computer Science и Machine Learning - более 2200 стр…
  6. Sep 15, 2026🐍 Python: как найти изменённое поле во вложенном словаре Сравнение before == after покаже…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →