Constructores múltiples de Python

Muhammad Maisam Abbas 10 octubre 2023
  1. Constructores en Python
  2. Varios constructores en Python
Constructores múltiples de Python

Este tutorial discutirá los constructores y el método para lidiar con la necesidad de múltiples constructores en Python.

Constructores en Python

En lenguajes de programación como Java, C++ y C#, tenemos el concepto de una función constructora que solo se ejecuta cuando se inicializa un objeto de la clase. La función constructora se utiliza para inicializar todos los atributos de la clase. El nombre de esta función constructora es el mismo que el de la clase. El concepto de función constructora es el mismo en Python pero, el nombre de la función constructora es __init__() para todas las clases. El constructor en Python siempre toma un parámetro, es decir, un puntero al objeto que llama. El siguiente fragmento de código muestra cómo podemos crear un constructor no parametrizado en Python.

class Person:
    def __init__(self):
        print("Constructor Function")


if __name__ == "__main__":
    p1 = Person()

Producción :

Constructor Function

Creamos un constructor no parametrizado para la clase Person y creamos un objeto de clase Person en la función main. El constructor fue llamado cuando creamos el objeto con p1 = Person().

Varios constructores en Python

En los lenguajes de programación Java, C# y C++, existe un concepto llamado constructores múltiples donde podemos crear tantos constructores para una sola clase como queramos. Desafortunadamente, no podemos definir varios constructores para una sola clase en Python. Un método general para sortear esta limitación es utilizar un constructor de parámetros predeterminado. Un constructor de parámetros predeterminado es el que asigna automáticamente un valor a sus atributos de clase si no se pasa ningún parámetro al crear el objeto de clase. El constructor de parámetros predeterminado asigna el valor especificado al atributo de clase si se especifica algún valor durante la creación del objeto. El siguiente fragmento de código muestra cómo eliminar la necesidad de varios constructores con el constructor de parámetros predeterminado en Python.

class Person:
    def __init__(self, name="Tom"):
        self.name = name

    def show(self):
        print("Name = ", self.name)


if __name__ == "__main__":
    p1 = Person()
    p2 = Person("Mark")
    p1.show()
    p2.show()

Producción :

Name =  Tom
Name =  Mark

Creamos un constructor de parámetros predeterminado en el código anterior especificando el valor predeterminado durante la definición de la función. El constructor de la clase Person toma un nombre de parámetro y lo asigna al parámetro de clase name. El valor predeterminado del nombre del parámetro es Tom. Creamos dos objetos p1 y p2 de la clase Person en la función principal. El objeto p1 no especifica ningún valor durante la inicialización; el objeto p2 pasa Mark como parámetro de constructor. Luego llamamos a la función show() con p1 y p2. La función show() muestra el valor del atributo name. Cuando p1 llama a la función show(), la salida es el valor predeterminado Name = Tom, pero cuando p2 llama a la función show(), la salida es Name = Mark porque especificamos Mark mientras crea el objeto p2.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artículo relacionado - Python Constructor