Функция hash() в Python позволяет вычислять хеш-значения для различных объектов. Обычно для целых чисел хеш совпадает с их значением, но есть исключения, которые могут удивить даже опытных программистов.
Разбираем, почему hash(-1) и hash(-2) в CPython возвращают одинаковое значение. Рассмотрим особенности работы hash(), внутреннюю реализацию хэширования целых чисел и причину специальной обработки -1.
Вопрос:
Что выведет функция hash() для следующих значений: 1, 0, -1, -2?
Most systems provide a drop-down menu of acceptable reasons for postponement. Common reasons accepted for postponement (as opposed to full disqualification) include:
Follow these steps to reschedule your jury service from your computer or phone.
After submitting your postponement request, you can expect the court to review your request and respond accordingly. Here are a few possible outcomes: how to postpone jury duty online
You will be prompted to enter your Juror Number, Zip Code, or Date of Birth. This logs you into your specific profile.
If the calendar shows dates as "unavailable" or "full," the jury pool for that week is at capacity. You must select a different week. Most systems provide a drop-down menu of acceptable
Do not Google generic terms like "postpone jury duty," as this can lead to third-party scam sites that charge fees for free forms.
If your summons does not mention online postponement or the portal is down: Here are a few possible outcomes: You will
You’ll need the found on your paper summons. This is your login key for the court's portal. 2. Log In to the Official Portal
This is a detailed guide on how to postpone jury duty online.
hash() может показаться незначительной, важно помнить о ней при работе с хэш-функциями и структурами данных, основанных на хэшировании. В большинстве случаев вы не столкнетесь с проблемами, но знание этой детали поможет вам избежать потенциальных ошибок и лучше понимать внутреннее устройство Python.Ключевые выводы:
Для небольших целых чисел в Python используется оптимизация (интернирование).
hash(x) == x для большинства целых чисел, но hash(-1) == -2 из-за внутренней реализации и для предотвращения коллизий.
Это поведение является специфичным для CPython и может отличаться в других реализациях Python (например, PyPy).
Используйте == для сравнения значений и is для сравнения идентичности объектов.
Надеюсь, теперь эта загадка с hash(-1) стала немного понятнее!
hash(-1) всегда возвращает -2, поэтому hash(-1) == hash(-2).__hash__() в пользовательских классах.