logo

Constructores en Python

Requisitos previos: Programación Orientada a Objetos en Python, Orientada a Objetos Python3

Python3






ejemplos de código java

class> GeekforGeeks:> ># default constructor> >def> __init__(>self>):> >self>.geek>=> 'GeekforGeeks'> ># a method for printing data members> >def> print_Geek(>self>):> >print>(>self>.geek)> # creating object of the class> obj>=> GeekforGeeks()> # calling the instance method using the object obj> obj.print_Geek()>

>

>

Producción

GeekforGeeks>

Ejemplo de la constructor parametrizado:

Python3




emojis de iphone en un teléfono android

class> Addition:> >first>=> 0> >second>=> 0> >answer>=> 0> ># parameterized constructor> >def> __init__(>self>, f, s):> >self>.first>=> f> >self>.second>=> s> >def> display(>self>):> >print>(>'First number = '> +> str>(>self>.first))> >print>(>'Second number = '> +> str>(>self>.second))> >print>(>'Addition of two numbers = '> +> str>(>self>.answer))> >def> calculate(>self>):> >self>.answer>=> self>.first>+> self>.second> # creating object of the class> # this will invoke parameterized constructor> obj1>=> Addition(>1000>,>2000>)> # creating second object of same class> obj2>=> Addition(>10>,>20>)> # perform Addition on obj1> obj1.calculate()> # perform Addition on obj2> obj2.calculate()> # display result of obj1> obj1.display()> # display result of obj2> obj2.display()>

>

>

Producción

First number = 1000 Second number = 2000 Addition of two numbers = 3000 First number = 10 Second number = 20 Addition of two numbers = 30>

Ejemplo:

Pitón




class> MyClass:> >def> __init__(>self>, name>=>None>):> >if> name>is> None>:> >print>(>'Default constructor called'>)> >else>:> >self>.name>=> name> >print>(>'Parameterized constructor called with name'>,>self>.name)> > >def> method(>self>):> >if> hasattr>(>self>,>'name'>):> >print>(>'Method called with name'>,>self>.name)> >else>:> >print>(>'Method called without a name'>)> # Create an object of the class using the default constructor> obj1>=> MyClass()> # Call a method of the class> obj1.method()> # Create an object of the class using the parameterized constructor> obj2>=> MyClass(>'John'>)> # Call a method of the class> obj2.method()>

subcomisionado de policía
>

>

Producción

clasificación de matriz java
Default constructor called Method called without a name ('Parameterized constructor called with name', 'John') ('Method called with name', 'John')>

Explicación:

En este ejemplo, definimos una clase MyClass con un constructor predeterminado y un constructor parametrizado. El constructor predeterminado comprueba si se ha pasado un parámetro o no e imprime un mensaje en la consola en consecuencia. El constructor parametrizado toma un único nombre de parámetro y establece el atributo de nombre del objeto en el valor de ese parámetro.

También definimos un método método() que verifica si el objeto tiene un atributo de nombre o no, e imprime un mensaje en la consola en consecuencia.

Creamos dos objetos de la clase MyClass usando ambos tipos de constructores. Primero, creamos un objeto usando el constructor predeterminado, que imprime el mensaje Constructor predeterminado llamado en la consola. Luego llamamos al método método() en este objeto, que imprime el mensaje Método llamado sin nombre en la consola.

A continuación, creamos un objeto usando el constructor parametrizado, pasando el nombre John. El constructor se llama automáticamente y el mensaje Constructor parametrizado llamado con el nombre John se imprime en la consola. Luego llamamos al método método() en este objeto, que imprime el mensaje Método llamado con el nombre John en la consola.

En general, este ejemplo muestra cómo se pueden implementar ambos tipos de constructores en una sola clase en Python.

Ventajas de usar constructores en Python:

    Inicialización de objetos: Los constructores se utilizan para inicializar los objetos de una clase. Le permiten establecer valores predeterminados para atributos o propiedades y también le permiten inicializar el objeto con datos personalizados. Fácil de implementar: los constructores son fáciles de implementar en Python y se pueden definir usando el método __init__().
  • Mejor legibilidad: los constructores mejoran la legibilidad del código al dejar claro qué valores se inicializan y cómo se inicializan.
  • Encapsulación: se pueden utilizar constructores para imponer la encapsulación, asegurando que los atributos del objeto se inicialicen correctamente y de forma controlada.

Desventajas de usar constructores en Python:

    Sobrecarga no compatible: a diferencia de otros lenguajes orientados a objetos, Python no admite la sobrecarga de métodos. Esto significa que no puedes tener múltiples constructores con diferentes parámetros en una sola clase. Funcionalidad limitada: los constructores en Python tienen una funcionalidad limitada en comparación con los constructores de otros lenguajes de programación. Por ejemplo, Python no tiene constructores con modificadores de acceso como público, privado o protegido. Los constructores pueden ser innecesarios: en algunos casos, los constructores pueden no ser necesarios, ya que los valores predeterminados de los atributos pueden ser suficientes. En estos casos, utilizar un constructor puede añadir complejidad innecesaria al código.

En general, los constructores en Python pueden resultar útiles para inicializar objetos y aplicar la encapsulación. Sin embargo, es posible que no siempre sean necesarios y su funcionalidad es limitada en comparación con los constructores de otros lenguajes de programación.