Pitón

Mutable vs. Objetos inmutables en Python

Mutable vs. Objetos inmutables en Python

Se dice que Python es el lenguaje más sorprendente, ya que muchas personas lo eligen como su primer lenguaje de programación por su elegancia y simplicidad. Agradecimiento a su amplia comunidad, exceso de paquetes y sintaxis consistente, los profesionales experimentados también están usando Python. Aunque hay una cosa que parece molestar tanto a los principiantes como a algunos desarrolladores profesionales: los objetos de Python.

Mutable vs. Inmutable

Mudable las entidades pueden alterar su estado o sustancia para describir la disparidad, y inmutable las entidades no pueden alterar su estado o sustancia. Entonces, cuando se crea un objeto, un especial ID de objeto está asignado. En tiempo de ejecución, se especifica el tipo de objeto y no se puede actualizar más tarde. Los formularios integrados como las variables int, float, bool, str, tuple y Unicode son inmutables. Los objetos como la lista, el conjunto, las matrices de bytes y el diccionario de categorías integradas son mutables.

Comprender la función de identificación y tipo

El integrado identificación() El método contiene la identificación de un objeto como solo un número entero. Ese número entero normalmente se refiere a la posición de almacenamiento del objeto. La 'es'operador relaciona las identidades de dos objetos entre sí. La función integrada, tipo(), devuelve el tipo de objeto. Compara dos variables 'X' y 'y', que tiene el mismo valor, usando el operador de igualdad'x == y', saldrá Cierto. Utilizando la función id (), hemos comparado el direcciones de memoria de ambas variables, generará Falso porque ambas variables son diferentes y están ubicadas en diferentes ubicaciones de memoria, aunque los valores que contienen son los mismos.

Haz otra variable 'z'que apunta a la entidad idéntica que'X'está dirigiendo a, usando el operador de asignación'='. Utilizando la 'es'operador hemos encontrado que ambos, apuntan al mismo objeto y tienen las mismas direcciones de memoria.

Tipos de variables inmutables

Echemos un vistazo a algunos tipos de variables inmutables.

Tipo de datos entero

Definamos una variable 'X'tener un valor'10'. Un incorporado método id () se utiliza para averiguar la ubicación de 'X'en la memoria y tipo() se utiliza para identificar su tipo. Cuando intentamos cambiar el valor de 'X', se cambia con éxito, aunque la dirección de memoria regresa de manera diferente. Es porque en realidad no hemos cambiado el valor de 'X', pero hemos creado otro objeto con el mismo nombre'X'y asígnele un valor diferente. Hemos unido el nombre 'X'al nuevo valor. Ahora, siempre que llames 'X'dará salida al nuevo valor.

Tipo de datos de cadena

Lo mismo para el tipo de datos de cadena, no podemos modificar el existente variable pero tenemos que crear uno nuevo con el mismo nombre. Aquí tenemos definido una variable de cadena 'X'y quiero agregar'w'a sus índices cero. Saldrá Error de tecleado, mostrando que el objeto de cadena no es compatible con la actualización.

Tipo de datos de tupla

Eche un vistazo a un tipo de tupla variable, hemos definido un tupla con 4 valores. Hemos utilizado el función id () para dar salida a su dirección. Cuando queremos cambiar su valor en 0 índices, da el Error de tecleado esa tupla no admite la asignación o actualización de elementos.

Al contrario, puedes actualizar la tupla completa definiéndola desde rasga. Ahora, siempre que lo marque, encontrará un nuevo valor y una nueva dirección.

Tipo de datos flotante

Tenemos una variable de tipo flotante 'X'. Utilizando la función id (), tenemos que averiguar su dirección. Cuando queremos cambiar su valor en índice 1, da el Error de tecleado ese flotador no admite la modificación de artículos.

Por el contrario, hemos actualizado el flotador definiéndolo de nuevo. Ahora, siempre que lo llamemos, encontraremos un nuevo valor y una nueva dirección.

Tipos de variables mutables

Ahora veremos algunos tipos de variables mutables.

Tipo de datos de lista

Hemos definido un lista llamado 'X'y agregarle algunos valores. Tiempo correr, mostrará valores de lista. Cuando usted actualizar la lista asignando nuevos valores a índice 0 y 2, lo hará con éxito.

El ejemplo descrito anteriormente es un ejemplo simple y básico de modificación. Para comprobar la mutabilidad a un nivel diferente, echemos un vistazo al mismo ejemplo con pocos cambios. Hemos creado un nuevo nombre 'y'y lo vinculó al mismo objeto de lista. Cuando comprobamos si el 'X' es lo mismo que 'y', devuelve True. Por otro lado, ambos 'X' y 'y' tener el mismo memoria direcciones.

Ahora agregue un nuevo valor a un nombre de lista 'x' y verifique la salida actualizada.

Ahora, cuando busque la lista nombre 'y', mostrará la misma lista que muestra para 'x'. Eso significa que, cuando actualizamos la misma lista de objetos, que tiene dos nombres diferentes 'x' e 'y'. Ambos son iguales y comparten las mismas direcciones de memoria incluso después de la modificación.

Tipo de datos del diccionario

Como los diccionarios son variables de uso común en Python, echemos un vistazo a la mutabilidad de los diccionarios. Hemos definido un diccionario llamado 'dictar'con tres claves y sus valores. Cuando lo imprimimos, mostrará todo su contenido. Puede imprimir cada valor del diccionario por separado, así como utilizar sus llaves en lugar de índices.

Queremos cambio el valor particular actualizando el Nombre clave'. Producirá el diccionario actualizado. Las claves del diccionario son inmutables.

Definamos un lista y tupla por separado. Asegúrate de eso tupla debe tener un valor de tipo de lista en él y una lista tienen un valor de tipo de tupla en ella en consecuencia.

A tupla tiene un lista en sus 0 índices así que cuando te cambies en el 0 índices de una tupla, tienes que mencionar el índice de una lista donde quieres cambiar. El cambio ocurre porque la lista es inmutable.

Por el contrario, la variable de lista no se puede actualizar porque tiene una tupla en 0 índice, que es mutable.

Conclusión

Hemos visto variaciones en Python entre mutable e inmutable. Tienes que dejar en claro que todo en Python se conoce como un objeto. Principalmente, la distinción entre objetos que son mutables y. inmutable.

Puertos de código abierto de motores de juegos comerciales
Las recreaciones gratuitas, de código abierto y de motores de juegos multiplataforma se pueden usar para jugar títulos de juegos antiguos y también al...
Los mejores juegos de línea de comandos para Linux
La línea de comandos no es solo su mayor aliado cuando usa Linux, también puede ser la fuente de entretenimiento porque puede usarla para jugar muchos...
Las mejores aplicaciones de mapeo de gamepad para Linux
Si te gusta jugar juegos en Linux con un gamepad en lugar de un sistema de entrada de teclado y mouse típico, hay algunas aplicaciones útiles para ti....