PYTHON_JOB_INTERVIEW Telegram 1275
🐍 Хитрая задача с собеседования по 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.

Проверяет, понимаешь ли ты, как работают значения по умолчанию и область памяти.
🔥7



tgoop.com/python_job_interview/1275
Create:
Last Update:

🐍 Хитрая задача с собеседования по 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.

Проверяет, понимаешь ли ты, как работают значения по умолчанию и область памяти.

BY Python вопросы с собеседований


Share with your friend now:
tgoop.com/python_job_interview/1275

View MORE
Open in Telegram


Telegram News

Date: |

As five out of seven counts were serious, Hui sentenced Ng to six years and six months in jail. Commenting about the court's concerns about the spread of false information related to the elections, Minister Fachin noted Brazil is "facing circumstances that could put Brazil's democracy at risk." During the meeting, the information technology secretary at the TSE, Julio Valente, put forward a list of requests the court believes will disinformation. The public channel had more than 109,000 subscribers, Judge Hui said. Ng had the power to remove or amend the messages in the channel, but he “allowed them to exist.” How to create a business channel on Telegram? (Tutorial) Select “New Channel”
from us


Telegram Python вопросы с собеседований
FROM American