Почему это важно
Задачка наглядно демонстрирует устройство хэш-таблиц (словарей и множеств) под капотом. Ключи считаются одинаковыми не по совпадению типов, а если их хэши равны (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
По шагам:
Почему это важно
Это неочевидное проявление лексической области видимости. Если нужно только прочитать глобальную переменную внутри локальной области, проблем не возникнет. Но для её изменения потребуется явно указать global x в начале функции.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍4
✍4
Почему это важно
Это неочевидное различие регулярно приводит к падениям скриптов при парсинге логов или CSV-файлов. Если вы ожидаете получить список токенов, а получаете пустой список вместо [''], обращение по индексу (например, chars[0]) вызовет IndexError.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3
✍2
Почему это важно:
Проверку на None нужно писать только через is None и is not None. Иначе перегруженный __eq__ может дать неожиданный результат и сломать логику условий.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍4
✍2