Функция hash() в Python позволяет вычислять хеш-значения для различных объектов. Обычно для целых чисел хеш совпадает с их значением, но есть исключения, которые могут удивить даже опытных программистов.
Разбираем, почему hash(-1) и hash(-2) в CPython возвращают одинаковое значение. Рассмотрим особенности работы hash(), внутреннюю реализацию хэширования целых чисел и причину специальной обработки -1.
Вопрос:
Что выведет функция hash() для следующих значений: 1, 0, -1, -2?
The world of anime and manga offers a vast array of genres and themes, making it challenging to decide what to watch or read. This paper provides a selection of popular anime series and manga recommendations, categorized by genre, to help fans navigate the vast world of Japanese pop culture. Whether you're a fan of action, romance, science fiction, or horror, there's something for everyone in the world of anime and manga.
The Ultimate Guide to Masterpiece Anime and Manga Across All Genres
The Ultimate Otaku Guide: Popular Anime Series and Manga Recommendations Hunter X Hunter Hentai Menchi 56
Produced by studio Ufotable, this series features some of the highest-quality, visually stunning animation in modern television history. Chainsaw Man (Manga)
The Ultimate Guide to Anime and Manga Recommendations Finding your next binge-watch or deep-read can feel overwhelming. The world of Japanese animation and comics offers thousands of titles spanning dozens of genres. The world of anime and manga offers a
It is pure, unadulterated comfort. Every chapter reminds readers to appreciate the wonder in small, mundane daily activities. To help narrow down your choice, let me know: What movies or TV shows do you normally enjoy? Do you prefer watching (anime) or reading (manga) ?
Naoki Urasawa’s manga is a masterpiece of slow-burn suspense, historical fiction, and deep character studies. The Ultimate Guide to Masterpiece Anime and Manga
Set in Taisho-era Japan, this series follows Tanjiro Kamado as he trains to become a demon slayer after his family is slaughtered. It is globally celebrated for its groundbreaking, movie-quality animation by studio Ufotable.
hash() может показаться незначительной, важно помнить о ней при работе с хэш-функциями и структурами данных, основанных на хэшировании. В большинстве случаев вы не столкнетесь с проблемами, но знание этой детали поможет вам избежать потенциальных ошибок и лучше понимать внутреннее устройство Python.Ключевые выводы:
Для небольших целых чисел в Python используется оптимизация (интернирование).
hash(x) == x для большинства целых чисел, но hash(-1) == -2 из-за внутренней реализации и для предотвращения коллизий.
Это поведение является специфичным для CPython и может отличаться в других реализациях Python (например, PyPy).
Используйте == для сравнения значений и is для сравнения идентичности объектов.
Надеюсь, теперь эта загадка с hash(-1) стала немного понятнее!
hash(-1) всегда возвращает -2, поэтому hash(-1) == hash(-2).__hash__() в пользовательских классах.