Python считает integers immutable, потому что после создания целочисленного объекта его значение нельзя изменить. 14 Любая операция, которая кажется модификацией целого числа, на самом деле создаёт новый целочисленный объект. 3
Несколько причин, по которым Python выбрал такой подход:
- Эффективность. 4 Immutable объекты быстрее доступны и с ними проще работать, так как их значение не меняется, поэтому интерпретатор может оптимизировать выделение и использование памяти. 4
- Предсказуемость. 4 Код, который зависит от целых чисел, будет более предсказуемым и менее подверженным ошибкам, вызванным неожиданными изменениями в данных. 4
- Консистентность. 4 Immutable целые числа гарантируют, что одно и то же значение всегда будет представлено одним и тем же объектом, что упрощает сравнение и проверку на равенство. 4
- Хэшability. 4 Immutable целые числа можно использовать как ключи в словарях и элементы в наборах, потому что они имеют фиксированное, неизменяющееся значение и поэтому являются хэш-объектами. 4
- Безопасность в многопоточных программах. 4 В многопоточной программе целочисленные объекты можно безопасно делить между потоками без риска условий гонки или других проблем с параллелизмом. 4