Requisitos previos: clase de Python , objetos , uno mismo Siempre que la programación orientada a objetos se realiza en Python, la mayoría de las veces nos encontramos con el método __init__ en Ups, que generalmente no entendemos por completo. Este artículo explica el concepto principal de __init__ pero antes de entender __init__ se requieren algunos requisitos previos.
¿Qué es __init__ en Python?
El constructor __init__ predeterminado en C++ y Java. Los constructores se utilizan para inicializar el estado del objeto. La tarea de los constructores es inicializar (asignar valores) a los miembros de datos de la clase cuando se crea un objeto de la clase. Al igual que los métodos, un constructor también contiene una colección de declaraciones (es decir, instrucciones) que se ejecutan en el momento de la creación del objeto. Se ejecuta tan pronto como se instancia un objeto de una clase. El método es útil para hacer cualquier inicialización que quieras hacer con tu objeto.
Ejemplo:
Python3
# A Sample class with init method class Person: # init method or constructor def __init__(self, name): self.name = name # Sample Method def say_hi(self): print('Hello, my name is', self.name) p = Person('Nikhil') p.say_hi()
Producción:
Hello, my name is Nikhil
Entendiendo el código
En el ejemplo anterior, se crea un nombre de persona Nikhil. Al crear una persona, se pasa «Nikhil» como argumento, este argumento se pasará al método __init__ para inicializar el objeto. La palabra clave self representa la instancia de una clase y vincula los atributos con los argumentos dados. De manera similar, se pueden crear muchos objetos de la clase Person pasando diferentes nombres como argumentos. A continuación se muestra el ejemplo de init en python con parámetros
Ejemplo de __init__
Python3
# A Sample class with init method class Person: # init method or constructor def __init__(self, name): self.name = name # Sample Method def say_hi(self): print('Hello, my name is', self.name) # Creating different objects p1 = Person('Nikhil') p2 = Person('Abhinav') p3 = Person('Anshul') p1.say_hi() p2.say_hi() p3.say_hi()
Producción:
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul
__init__ con herencia
La herencia es la capacidad de una clase para derivar o heredar las propiedades de alguna otra clase. Consideremos el siguiente ejemplo para ver cómo funciona __init__ en herencia.
Python3
# Python program to # demonstrate init with # inheritance class A(object): def __init__(self, something): print("A init called") self.something = something class B(A): def __init__(self, something): # Calling init of parent class A.__init__(self, something) print("B init called") self.something = something obj = B("Something")
Producción:
A init called B init called
Entonces, primero se llama al constructor de la clase principal. Pero en Python, no es obligatorio que el constructor de la clase principal siempre se llame primero. Se puede modificar el orden en el que se llama al método __init__ para una clase principal o secundaria. Esto se puede hacer simplemente llamando al constructor de la clase principal después del cuerpo del constructor de la clase secundaria.
Ejemplo:
Python3
# Python program to # demonstrate init with # inheritance class A(object): def __init__(self, something): print("A init called") self.something = something class B(A): def __init__(self, something): print("B init called") self.something = something # Calling init of parent class A.__init__(self, something) obj = B("Something")
Producción:
B init called A init called
Nota: Para saber más sobre la herencia haz click aquí .
Publicación traducida automáticamente
Artículo escrito por nikhilaggarwal3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA