Full Stack

Python — Todo es objeto

Posteado el 19 de mayo de 2023 por admin

Python — Todo es objeto

Autor: Julián Zea

Python es un lenguaje de programación de alto nivel, que está orientado a objetos y debemos tener en cuenta qué es importante saber que todos los objetos de Python pueden ser mutables o también inmutables.

Detallando un poco más sobre python, debemos saber que cada variable contiene una instancia de objeto, cuando iniciamos un objeto en python, también se le asigna una identificación de objeto única, su tipo se define en tiempo de ejecución, una vez que se establece. no se puede cambiar, pero si es mutable, su estado puede cambiar, en resumen, un objeto cuando se puede cambiar después de crearlo es mutable, pero un objeto inmutable no lo es.

Aquí presentaré los objetos de tipos incorporados que son inmutables.

  • int (entero)
  • float (número de punto flotante)
  • bool (valor booleano)
  • tupla (secuencia inmutable de objetos)

Aquí presentaré el tipo de objeto integrado que es mutable.

  • lista (secuencia mutable de objetos)
  • conjunto (conjunto desordenado de objetos distintos)
  • dict (mapeo asociativo)

Las clases que creamos son mutables, pero si queremos hacerlas inmutables en una clase, debemos anular la configuración y eliminación de atributos de por lo que generaremos excepciones.

Con todo lo mencionado anteriormente ahora podemos continuar con ID y Tipo.

ID y TIPO

Id es una función incorporada que se usa de una manera (id()) que devuelve un objeto como un número entero. Por lo general, este número entero corresponde a la ubicación del objeto en la memoria, por otro lado, lo que hace el operador es comparar la identidad de dos objetos.

Ejemplo:

TYPE también es una función incorporada que se usa de una manera (type()) que devuelve un tipo de objeto.

Ejemplo:

Con lo anterior y con ejemplos hemos podido comparar dos variables de cadena simples para poder conocer los tipos e identificaciones, usando las funciones podemos comprobar cómo se asocian los diferentes tipos de objetos con sus variables y cómo podemos cambiar el objetos

OBJETOS MUTABLES

Anteriormente dije que un objeto mutable puede cambiar su estado o contenido del objeto, por ejemplo:

  • Lista
  • dictado
  • Colocar
  • Byte
  • Formación

OBJETOS INMUTABLES

Un objeto inmutable no puede cambiar su estado o contenido del objeto, por ejemplo:

  • En t
  • flotar
  • complejo
  • cadena
  • tupla

Sabemos que la mutabilidad en los tipos de objetos es así:

X = 15

x = z

en este caso estamos creando un objeto de tipo int, cuyos identificadores x y z apuntan al mismo objeto.

ejemplo:

id(c) != id(z)

id(c) != id(15)

Aquí el objeto en el que se cambia “c”, pero no se modifica el objeto 10. Esto fue en el caso de los mutables, ahora les enseñaré sobre los inmutables.

Los inmutables no permiten ser modificados después de la creación. Por ejemplo en caso de ser mutable.

L = lista ([1, 5, 6])

UN = L

En este caso, estamos creando un objeto de tipo lista con identificadores I, ya que están etiquetados en el mismo objeto de lista, que son una colección que pertenece a 3 objetos int inmutables.

identificación (L) == identificación (A)

Ahora eliminaremos un elemento de la lista de objetos para cambiar el objeto.

L.pop()

No se puede cambiar. L y apunte al mismo objeto de lista después de la modificación, el objeto de lista ahora contendrá [1, 5].

PUNTOS IMPORTANTES HASTA AHORA SOBRE PYTHON

  • Python maneja mutables e inmutables de manera completamente diferente.
  • Los objetos mutables son esenciales para poder usarlos cuando queremos cambiar el tamaño del objeto, los inmutables los usamos cuando necesitamos asegurarnos de que el objeto que se crea siempre permanece igual.
  • En Python, los objetos inmutables son mucho más rápidos de acceder que los objetos mutables.
  • Python en objetos inmutables es muy complicado de cambiar, porque limpiarlos implica crear una copia en cambio en objetos mutables es sencillo.

EXCEPCIONES EN LA INMUTABILIDAD

Ahora viene el problema del sujeto sobre mutable e inmutable, ya que no todos los objetos inmutables son de especificidad inmutable, aquí te ayudaré a entender mejor esta pregunta.

Las tuplas similares a los contenedores de python son inmutables, eso significa que el valor que tiene la tupla no se puede modificar después de la creación, pero el valor de una tupla es una secuencia de nombre con enlaces inmutables a los objetos, pero aquí lo importante es que los enlaces no se pueden modificado, no me refiero a los objetos a los que se modifican

ejemplo: tupla Z = (‘ESCUELA HOLBERTON’, [1, 2, 3])

En este caso la tupla contiene elementos de diferentes tipos de datos, entonces vemos que la primera es una cadena inmutable y la segunda es una lista mutable, con esto quiero decir que no tiene ningún método para cambiar su contenido, de manera similar la cadena es inmutable porque debe tener en cuenta que las cadenas no tienen ningún método de mutación, pero nuestro objeto de lista tiene métodos de mutación, por lo que si se puede cambiar es un punto clave pero no igual de importante, sabemos que el valor de un objeto inmutable no puede cambiar pero sus objetos constituyentes poder.

¿CÓMO SE PASAN LOS OBJETOS A LAS FUNCIONES?

Ahora veremos lo importante que es para nosotros saber la diferencia entre tipos mutables e inmutables y cómo es que se reduce a cuando lo pasamos a funciones, ya que la memoria se ve afectada cuando usamos los objetos adecuados.

En caso de que quisiéramos llamar a un objeto mutable por referencia en una función, podemos cambiar la variable original en sí. Pero si queremos evitar esto, la variable original debe copiarse en otra variable, hablemos un poco más sobre los objetos inmutables, ya que se puede llamar por referencia porque su valor no se puede modificar independientemente de los métodos que usemos.

En el caso anterior, lo que estamos haciendo es llamar a la lista a través de una llamada por referencia, por lo que los cambios se están realizando sobre la lista original.

Aquí hay otro caso que nos puede ayudar a entender mejor:

Como podemos ver se le pasa el mismo objeto a la función, pero si nos fijamos bien, el objeto es idéntico pero el valor de las variables no cambia, a esto se le llama pasar por valor y te estarás preguntando ¿Qué está pasando aquí? Cuando nuestra función está llamando al valor, solo estamos pasando el valor de la variable, no el ojo del objeto con eso, la variable que hace referencia al objeto no cambia, pero el objeto en sí mismo cambia pero solo dentro del alcance de nuestra función, pero el cambio no se refleja.

Recibe los últimos artículos directamente en tu bandeja de entrada.

Suscríbete a nuestro Newsletter