Вопросы с собеседований по Python
@workakkk - админ
@machinelearning_interview - вопросы с собесдований по Ml
@pro_python_code - Python
@data_analysis_ml - анализ данных на Python
@itchannels_telegram - 🔥 главное в ит
РКН: clck.ru/3FmrFd
Post #1144
2.77K
🐍 Python-задача с подвохом: что напечатает код?
Варианты ответа:
1️⃣
2️⃣
3️⃣
4️⃣
---
💡 Подсказка:
Если вы используете изменяемый объект (например, список) как значение по умолчанию в аргументе функции — он сохраняется между вызовами.
---
✅ Ответ:
🔎 Почему?
👉 Значение по умолчанию
👉 Когда вызываем
👉 Когда вызываем
👉 Когда вызываем
Чтобы избежать этой ловушки:
🚀 Запомни: никогда не используй изменяемые объекты как значения по умолчанию для аргументов функции!
@python_job_interview
def extend_list(val, lst=[]):
lst.append(val)
return lst
list1 = extend_list(10)
list2 = extend_list(123, [])
list3 = extend_list('a')
print("list1 =", list1)
print("list2 =", list2)
print("list3 =", list3)
Варианты ответа:
1️⃣
list1 = [10], list2 = [123], list3 = ['a'] 2️⃣
list1 = [10], list2 = [123], list3 = [10, 'a'] 3️⃣
list1 = [10, 'a'], list2 = [123], list3 = [10, 'a'] 4️⃣
list1 = [10, 'a'], list2 = [123], list3 = ['a']---
💡 Подсказка:
Если вы используете изменяемый объект (например, список) как значение по умолчанию в аргументе функции — он сохраняется между вызовами.
---
✅ Ответ:
list1 = [10, 'a'] list2 = [123] list3 = [10, 'a']🔎 Почему?
👉 Значение по умолчанию
lst=[] создаётся один раз — при определении функции. 👉 Когда вызываем
extend_list(10), значение 10 добавляется в этот общий список. 👉 Когда вызываем
extend_list(123, []), передаём новый список, всё ок. 👉 Когда вызываем
extend_list('a'), снова используется общий список из первого вызова.Чтобы избежать этой ловушки:
def extend_list(val, lst=None):
if lst is None:
lst = []
lst.append(val)
return lst
🚀 Запомни: никогда не используй изменяемые объекты как значения по умолчанию для аргументов функции!
@python_job_interview
- ❤ 8





