Colección de citas famosas - Mensajes de felicitación - ¿Por qué lenguajes como Python y Ruby abandonan el operador de incremento?

¿Por qué lenguajes como Python y Ruby abandonan el operador de incremento?

En Python, los números enteros son tipos inmutables. Una vez que se crea un objeto, su valor no se puede cambiar.

En lenguajes como Java o C, lo que hace ++ es sumar 1 al valor de esta variable, como por ejemplo a = 1, significa reemplazar el área de memoria original de​; ​A con el valor original + 1. el valor representado. En Python, una vez que se crea un objeto entero, su valor no se puede cambiar. Por lo tanto, no se pueden realizar operaciones de autoincremento y autodecremento.

-

Actualízalo. ¿Cuál es la diferencia entre i += 1 y i = i+1? En la mayoría de los casos, puedes considerar que estas dos formas de escribir son equivalentes. Pero todavía existen algunas diferencias en la implementación. Tomemos como ejemplo la variable plástica A. El código de bytes generado por los dos métodos de escritura es el siguiente:

i += 1:

6 LOAD_FAST 0 (a)

9 Carga constante 1 (1 )

12 in-place_add

13 STORE_FAST 0 (a)

i = i + 1

6 LOAD_FAST 0 (a)

9 LOAD CONSTANT 1 (1)

12 BINARY_ADDITION

13 STORE_FAST 0 (a)

Como puedes ver, todavía está diferente en la llamada subyacente. Reflejado en la implementación del lenguaje Python, __add__ corresponde a la operación + y __iadd__ corresponde a la operación +=.