Objetos mutables vs inmutables en Python

Cada variable en python contiene una instancia de un objeto. Hay dos tipos de objetos en python, es decir , objetos mutables e inmutables . Cada vez que se crea una instancia de un objeto, se le asigna una identificación de objeto única. El tipo del objeto se define en el tiempo de ejecución y no se puede cambiar después. Sin embargo, su estado se puede cambiar si es un objeto mutable.

Para resumir la diferencia, los objetos mutables pueden cambiar su estado o contenido y los objetos inmutables no pueden cambiar su estado o contenido.

  • Objetos inmutables: estos son de tipos integrados como int, float, bool, string, unicode, tuple . En palabras simples, un objeto inmutable no se puede cambiar después de crearlo.

    # Python code to test that 
    # tuples are immutable 
        
    tuple1 = (0, 1, 2, 3
    tuple1[0] = 4
    print(tuple1)

    Error :

    Traceback (most recent call last):
      File "e0eaddff843a8695575daec34506f126.py", line 3, in 
        tuple1[0]=4
    TypeError: 'tuple' object does not support item assignment

    # Python code to test that 
    # strings are immutable 
      
    message = "Welcome to GeeksforGeeks"
    message[0] = 'p'
    print(message)

    Error :

    Traceback (most recent call last):
      File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
        message[0] = 'p'
    TypeError: 'str' object does not support item assignment
  • Objetos mutables: Estos son de tipo list , dict , set . Las clases personalizadas son generalmente mutables.

    # Python code to test that 
    # lists are mutable 
    color = ["red", "blue", "green"]
    print(color)
      
    color[0] = "pink"
    color[-1] = "orange"
    print(color)

    Producción:

    ['red', 'blue', 'green']
    ['pink', 'blue', 'orange']

Conclusión

  1. Los objetos mutables e inmutables se manejan de manera diferente en python. Los objetos inmutables son más rápidos de acceder y son costosos de cambiar porque implica la creación de una copia.
    Mientras que los objetos mutables son fáciles de cambiar.
  2. Se recomienda el uso de objetos mutables cuando sea necesario cambiar el tamaño o el contenido del objeto.
  3. Excepción: Sin embargo, también hay una excepción en la inmutabilidad. Sabemos que la tupla en python es inmutable. Pero la tupla consta de una secuencia de nombres con enlaces inmutables a los objetos.
    Considere una tupla
     tup = ([3, 4, 5], 'myname') 

    La tupla consta de una string y una lista. Las strings son inmutables, por lo que no podemos cambiar su valor. Pero el contenido de la lista puede cambiar. La tupla en sí no es mutable pero contiene elementos que son mutables.

Como regla general, los tipos generalmente primitivos son probablemente inmutables y los tipos personalizados de contenedores son en su mayoría mutables.

Publicación traducida automáticamente

Artículo escrito por Anime girl 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 *