The Teyvat Gravure community on Doujindesu TV has grown exponentially, with fans from all over the world contributing their own unique takes on the characters and storylines from Genshin Impact. From stunning cosplay images to cleverly edited videos, the Teyvat Gravure content on Doujindesu TV is a testament to the creativity and passion of the Genshin Impact fan base.
Вопрос:
Что выведет функция hash() для следующих значений: 1, 0, -1, -2?
The Teyvat Gravure community on Doujindesu TV has grown exponentially, with fans from all over the world contributing their own unique takes on the characters and storylines from Genshin Impact. From stunning cosplay images to cleverly edited videos, the Teyvat Gravure content on Doujindesu TV is a testament to the creativity and passion of the Genshin Impact fan base.
hash() может показаться незначительной, важно помнить о ней при работе с хэш-функциями и структурами данных, основанных на хэшировании. В большинстве случаев вы не столкнетесь с проблемами, но знание этой детали поможет вам избежать потенциальных ошибок и лучше понимать внутреннее устройство Python.Ключевые выводы:
Для небольших целых чисел в Python используется оптимизация (интернирование).
doujindesutvteyvatgravure07arlecchino upd
hash(x) == x для большинства целых чисел, но hash(-1) == -2 из-за внутренней реализации и для предотвращения коллизий.
The Teyvat Gravure community on Doujindesu TV has
Это поведение является специфичным для CPython и может отличаться в других реализациях Python (например, PyPy).
doujindesutvteyvatgravure07arlecchino upd
Используйте == для сравнения значений и is для сравнения идентичности объектов.
Надеюсь, теперь эта загадка с hash(-1) стала немного понятнее!
hash(-1) всегда возвращает -2, поэтому hash(-1) == hash(-2).__hash__() в пользовательских классах.