ChatCrawlerпоиск по публичному Telegram Открыть приложение
P

Python Community | Chat

сообщение · 2025-04-11 12:05 UTC
I
🧠 Задача на внимание и знание подводных камней в Python Что выведет данный код? def make_funcs(): funcs = [] for i in range(3): def wrapper(x=i): return lambda: x funcs.append(wrapper()) return funcs a, b, c = make_funcs() print(a(), b(), c()) ❓ Варианты ответа: A) 0 1 2 B) 2 2 2 C) 0 0 0 D) Ошибка на этапе выполнения ✅ Ответ: 0 1 2 📘 Объяснение: 🔹 Цикл for i in range(3) проходит по значениям 0, 1, 2. 🔹 В каждой итерации вызывается wrapper(x=i) — это копирует текущее значение i в локальную переменную x. 🔹 Затем возвращается lambda: x, которая запоминает это конкретное значение x. 🔹 В итоге: a() → 0 b() → 1 c() → 2 Если бы мы не использовали x=i по умолчанию, а написали просто lambda: i, все функции замкнули бы одну и ту же переменную i, и на момент вызова она бы уже была равна 3. @Python_Community_ru
1K ·

Все сообщения за 11 апреля 2025 · Вся лента · оригинал в Telegram

Открыть в Telegram Каталог площадок Искать в ChatCrawler

Слепок открытой публичной ленты из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог