P
Python: задачки и вопросы
@quiz_python8.4K подп.
670просмотров
7.9%от подписчиков
10 марта 2026 г.
Score: 737
Объяснение по шагам 1️⃣Цикл for i in range(3) запускается: i принимает значения 0, 1, 2 2️⃣На каждой итерации создаётся лямбда lambda: i — но она не запоминает текущее значение i, а сохраняет лишь ссылку на имя i 3️⃣Список funcs теперь содержит три функции, каждая смотрит на одно и то же имя i 4️⃣Цикл завершился — переменная i в области видимости равна 2 5️⃣f() вызывается для первой лямбды → ищет i → находит 2 → возвращает 2 6️⃣То же самое для второй и третьей лямбды 7️⃣print([2, 2, 2]) выводит [2, 2, 2] Почему это важно Классическая ловушка при создании коллбэков в цикле. Чтобы зафиксировать значение в момент создания, используйте аргумент по умолчанию: lambda i=i: i — он вычисляется сразу при создании функции.
670
просмотров
729
символов
Нет
эмодзи
Нет
медиа

Другие посты @quiz_python

Все посты канала →
Объяснение по шагам 1️⃣Цикл for i in range(3) запускается: i — @quiz_python | PostSniper