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) всегда возвращает -2, поэтому hash(-1) == hash(-2).__hash__() в пользовательских классах.