Почему это важно
Классическая ловушка при создании коллбэков в цикле. Чтобы зафиксировать значение в момент создания, используйте аргумент по умолчанию: lambda i=i: i — он вычисляется сразу при создании функции.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍4
✍2
Почему это важно
Никогда не используйте операторы управления потоком (return, break, continue) внутри finally. Это антипаттерн: он может скрывать исключения и ломать ожидаемую логику возврата значений из функции.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3
✍2
Почему это важно
С одной стороны, это позволяет писать изящные счётчики вроде sum(x > 0 for x in lst). С другой стороны, неочевидное смешивание булевых значений и арифметики может запутать читателя кода, поэтому злоупотреблять этим не стоит.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍2
✍3
Почему это важно
Задачка наглядно демонстрирует устройство хэш-таблиц (словарей и множеств) под капотом. Ключи считаются одинаковыми не по совпадению типов, а если их хэши равны (hash(a) == hash(b)) и сами объекты равны (a == b). Это нужно помнить при смешивании разных числовых типов в ключах.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍7
✍4
Почему это важно
Это редкий пример жёсткого архитектурного ограничения в гибком Python. Понимание того, что базовые концепции истины и лжи аппаратно защищены от переопределения, уберегает от странных идей по созданию собственных логических типов, которые могли бы сломать стандартные проверки if в чужом коде.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍7
✍3
Почему это важно
Это базовое правило работы с областями видимости. Важно твёрдо помнить, что чтение глобальных переменных работает прозрачно и «из коробки». Иногда новички ищут здесь подвох, ожидая ошибку, но проблемы начинаются только в момент попытки изменить такую переменную.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3
✍6
✍7