Helloneighborupdatev112codex Now

Загадочная функция hash в Python

Helloneighborupdatev112codex Now

When Hello Neighbor officially launched in December 2017, it was met with a mixed reception. The game’s "crowning" (the final act) was notoriously broken. Collision detection was glitchy, the Neighbor's AI would sometimes freeze, and the puzzle logic required mind-reading rather than deduction.

Major changes to object physics to prevent items from rolling or flying endlessly, which also improved CPU performance.

UX and polish

Вопрос:


Что выведет функция hash() для следующих значений: 1, 0, -1, -2?

When Hello Neighbor officially launched in December 2017, it was met with a mixed reception. The game’s "crowning" (the final act) was notoriously broken. Collision detection was glitchy, the Neighbor's AI would sometimes freeze, and the puzzle logic required mind-reading rather than deduction.

Major changes to object physics to prevent items from rolling or flying endlessly, which also improved CPU performance.

UX and polish

Хотя эта особенность hash() может показаться незначительной, важно помнить о ней при работе с хэш-функциями и структурами данных, основанных на хэшировании. В большинстве случаев вы не столкнетесь с проблемами, но знание этой детали поможет вам избежать потенциальных ошибок и лучше понимать внутреннее устройство Python.

Ключевые выводы:

  • Для небольших целых чисел в Python используется оптимизация (интернирование).
      helloneighborupdatev112codex

  • hash(x) == x для большинства целых чисел, но hash(-1) == -2 из-за внутренней реализации и для предотвращения коллизий.
      When Hello Neighbor officially launched in December 2017,

  • Это поведение является специфичным для CPython и может отличаться в других реализациях Python (например, PyPy).
      the Neighbor's AI would sometimes freeze

  • Используйте == для сравнения значений и is для сравнения идентичности объектов.

Надеюсь, теперь эта загадка с hash(-1) стала немного понятнее!

Вопросы

Почему значения hash(-1) и hash(-2) могут совпадать в Python?
Можно ли изменить поведение функции hash() для чисел?

Поделиться

Обсудить проект с командой LighTech

Забронировать встречу

Примеры реализации проектов

Обсудить проект
Имя
Связаться
Сообщение
Прикрепить файл +
Запрос на получение файлов
Имя
Отправить файлы
Сообщение
Спасибо!
Ваша заявка отправлена
После обработки наш менеджер свяжется с вами