Diferencia entre x = x + y y x += y en Python

A menudo usamos x += yen lugar de x = x + y. Entonces, ¿son iguales o diferentes? Encontrémoslo aquí.

Ejemplo 1:

x = [1, 2]
another_x = x
y = [3]
  
x += y
  
print(x)
print(another_x)

Producción:

[1, 2, 3]
[1, 2, 3]

Ejemplo 2:

x = [1, 2]
another_x = x
y = [3]
  
x = x + y
  
print(x)
print(another_x)

Producción:

[1, 2, 3]
[1, 2]

Así que aquí encontramos que ambos códigos son casi similares, pero aún así hay diferencias en los resultados. Entonces, la razón detrás de esto es que para muchos tipos de objetos, x += y modificará el objeto al que se hace referencia xen el lugar, mientras x = x + y que creará un nuevo objeto y xlo reasignará. Esta distinción es importante si todavía tiene otra referencia al objeto en algún lugar como en este caso another_aes otra referencia al objeto.

Sin embargo, muchos objetos, como números y strings, son «inmutables» (no se pueden modificar en el lugar) y, para esos objetos, x += ynormalmente x = x + yharán exactamente lo mismo. Pero si escribe su propia clase, puede personalizar qué +y +=hacer cuando se usa con objetos de esa clase, y puede hacer que hagan cosas completamente diferentes si realmente lo desea.

Ejemplo 3:

x = "12345"
another_x = x
y = "67890"
  
x += y
  
print(x)
print(another_x)

Producción:

1234567890
12345

Ejemplo 4:

x = "12345"
another_x = x
y = "67890"
  
x = x + y
  
print(x)
print(another_x)

Producción:

1234567890
12345

Publicación traducida automáticamente

Artículo escrito por kapadiamiraj1133 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *