🧠 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 В) 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-задача на внимательность и знание подводных камней
Что выведет этот код?
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 В) 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.
The campaign, which security firm Check Point has named Rampant Kitten, comprises two main components, one for Windows and the other for Android. Rampant Kitten’s objective is to steal Telegram messages, passwords, and two-factor authentication codes sent by SMS and then also take screenshots and record sounds within earshot of an infected phone, the researchers said in a post published on Friday.
Unlimited members in Telegram group now
Telegram has made it easier for its users to communicate, as it has introduced a feature that allows more than 200,000 users in a group chat. However, if the users in a group chat move past 200,000, it changes into "Broadcast Group", but the feature comes with a restriction. Groups with close to 200k members can be converted to a Broadcast Group that allows unlimited members. Only admins can post in Broadcast Groups, but everyone can read along and participate in group Voice Chats," Telegram added.