Python __init__ NO es un constructor un análisis profundo de la creación de objetos en Python

Python __init__ NO es un constructor un análisis profundo sobre la creación de objetos en Python

Experimentando con el constructor de Python para crear clases rápidas y eficientes en memoria

Cómo Python construye objetos (imagen de ChatGPT)

¿Sabías que el método __init__ no es un constructor? Pero si __init__ no crea el objeto, entonces ¿qué lo hace? ¿Cómo se crean los objetos en Python? ¿Python incluso tiene un constructor?

El objetivo de este artículo es comprender mejor cómo Python crea objetos para poder manipularlo con aplicaciones útiles.

Primero, profundizaremos en cómo Python crea objetos. Luego, aplicaremos este conocimiento y discutiremos algunos casos de uso interesantes con ejemplos prácticos. ¡Vamos a programar!

1. Teoría: Creación de objetos en Python

En esta parte, descubriremos qué hace Python bajo el capó cuando creas un objeto. En la siguiente parte, aplicaremos este nuevo conocimiento en la parte 2.

¿Cómo crear un objeto en Python?

Esto debería ser bastante simple; simplemente creas una instancia de una clase. Alternativamente, podrías crear un nuevo tipo incorporado como una cadena (str) o un entero (int). En el siguiente código, se crea una instancia de una clase básica que solo contiene una función __init__ y un método say_hello:

class SimpleObject:  
    greet_name: str  
    def __init__(self, name: str):    
        self.greet_name = name  
    def say_hello(self) -> None:    
        print(f"Hola {self.greet_name}!")
        
my_instance = SimpleObject(name="bob")
my_instance.say_hello()

Observa el método __init__. Recibe un parámetro name y guarda su valor en el atributo greet_name de la instancia de SimpleObject. Esto permite que nuestra instancia mantenga un estado.

Ahora surge la pregunta: para guardar el estado, necesitamos tener algo en qué guardar el estado. ¿De dónde obtiene __init__ el objeto?

Entonces, ¿__init__ es un constructor?

La respuesta: técnicamente no. Los constructores realmente crean el nuevo objeto; el método __init__ solo es responsable de establecer el estado del objeto. Simplemente recibe valores a través de sus parámetros y los asigna a los atributos de la clase como greet_name.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Stability AI lanza el primer modelo japonés de visión y lenguaje

La creación y formulación de un modelo único y completo capaz de manejar una variedad de tareas definidas por el usua...

Inteligencia Artificial

Este boletín de inteligencia artificial es todo lo que necesitas #71

Esta semana, el presidente Joe Biden volvió a poner la regulación de la inteligencia artificial en el punto de mira a...

Inteligencia Artificial

Aprendizaje profundo para objetos profundos ZoeDepth es un modelo de IA para la estimación de profundidad en múltiples dominios

¿Alguna vez te has encontrado con ilusiones en las que un niño en la imagen parece más alto y más grande que un adult...

Inteligencia Artificial

Rompiendo barreras en la adaptación de dominio sin fuente el impacto de NOTELA en los dominios de bioacústica y visión

El aprendizaje profundo ha avanzado significativamente en una amplia gama de áreas de aplicación. Un factor important...

Inteligencia Artificial

Las Pruebas Asistidas por Computadora Abordan el Flujo de Fluidos

Los investigadores utilizan computadoras para demostrar que las ecuaciones pueden explotar.