Polimorfismo en Python con EJEMPLOS
¿Qué es el polimorfismo?
El polimorfismo se puede definir como una condición que se presenta de muchas formas diferentes. Es un concepto en Python programación en la que un objeto definido en Python se puede utilizar de diferentes maneras. Permite al programador definir múltiples métodos en una clase derivada y tiene el mismo nombre que el presente en la clase principal. Estos escenarios admiten la sobrecarga de métodos en Python.
Polimorfismo en Operatoros
Un operador en Python Ayuda a realizar tareas matemáticas y otras tareas de programación. Por ejemplo, el operador '+' ayuda a realizar sumas entre dos tipos de números enteros en Python, y de la misma manera, el mismo operador ayuda a concatenar cadenas en Python programación.
Tomemos un ejemplo de + (más) operador en Python para mostrar una aplicación de polimorfismo en Python como se muestra a continuación:
Python Código:
p = 55 q = 77 r = 9.5 g1 = "Guru" g2 = "99!" print("the sum of two numbers",p + q) print("the data type of result is",type(p + q)) print("The sum of two numbers",q + r) print("the data type of result is", type (q + r)) print("The concatenated string is", g1 + g2) print("The data type of two strings",type(g1 + g2))
Salida:
the sum of two numbers 132 the data type of result is <class 'int'> The sum of the two numbers 86.5 the data type of result is <class 'float'> The concatenated string is Guru99! The data type of two strings <class 'str'>
El ejemplo anterior también puede considerarse como un ejemplo de sobrecarga del operador.
Polimorfismo en métodos definidos por el usuario.
Un método definido por el usuario en el Python El lenguaje de programación son métodos que crea el usuario y se declara utilizando la palabra clave def con el nombre de la función.
Polimorfismo en el Python El lenguaje de programación se logra mediante la sobrecarga y anulación de métodos. Python define métodos con la palabra clave def y con el mismo nombre tanto en la clase secundaria como en la primaria.
Tomemos el siguiente ejemplo que se muestra a continuación:
Python Código:
from math import pi class square: def __init__(self, length): self.l = length def perimeter(self): return 4 * (self.l) def area(self): return self.l * self.l class Circle: def __init__(self, radius): self.r = radius def perimeter(self): return 2 * pi * self.r def area(self): return pi * self.r * * 2 # Initialize the classes sqr = square(10) c1 = Circle(4) print("Perimeter computed for square: ", sqr.perimeter()) print("Area computed for square: ", sqr.area()) print("Perimeter computed for Circle: ", c1.perimeter()) print("Area computed for Circle: ", c1.area())
Salida:
Perimeter computed for square: 40 Area computed for square: 100 Perimeter computed for Circle: 25.132741228718345 Area computed for Circle: 50.26548245743669
En el código anterior, hay dos métodos definidos por el usuario, perímetro y área, definidos en clases de círculo y cuadrado.
Como se muestra arriba, tanto la clase circular como la clase cuadrada invocan el mismo nombre de método que muestra la característica de polimorfismo para entregar el resultado requerido.
Polimorfismo en funciones
Las funciones integradas en Python están diseñados y hechos compatibles para ejecutar varios tipos de datos. En Python, Len()
es una de las funciones clave integradas.
Funciona con varios tipos de datos: lista, tupla, cadena y diccionario. La función Len () devuelve información definitiva alineada con estos muchos tipos de datos.
La siguiente figura muestra cómo se puede aplicar el polimorfismo en Python en relación con las funciones integradas: –
El siguiente programa ayuda a ilustrar la aplicación del polimorfismo en Python: -
Python Código:
print ("The length of string Guru99 is ",len("Guru99")) print("The length of list is ",len(["Guru99","Example","Reader"])) print("The length of dictionary is ",len({"Website name":"Guru99","Type":"Education"}))
Salida:
The length of string Guru99 is 6 The length of the list is 3 The length of the dictionary is 2
En el ejemplo anterior, la función Len () de Python realiza polimorfismo para tipos de datos de cadena, lista y diccionario, respectivamente.
Polimorfismo y herencia
herencia en Python se puede definir como el concepto de programación en el que una clase secundaria definida hereda propiedades de otra clase base presente en Python.
Hay dos claves Python conceptos denominados anulación de método y sobrecarga de método.
- En la sobrecarga de métodos, Python proporciona la característica de crear métodos que tienen el mismo nombre para realizar o ejecutar diferentes funcionalidades en un fragmento de código determinado. Permite sobrecargar métodos y los utiliza para realizar diferentes tareas en términos más simples.
- En método anulado, Python anula el valor que comparte un nombre similar en las clases padre e hija.
Tomemos el siguiente ejemplo de polimorfismo y herencia como se muestra a continuación:
Python Código:
class baseclass: def __init__(self, name): self.name = name def area1(self): pass def __str__(self): return self.name class rectangle(baseclass): def __init__(self, length, breadth): super().__init__("rectangle") self.length = length self.breadth = breadth def area1(self): return self.length * self.breadth class triangle(baseclass): def __init__(self, height, base): super().__init__("triangle") self.height = height self.base = base def area1(self): return (self.base * self.height) / 2 a = rectangle(90, 80) b = triangle(77, 64) print("The shape is: ", b) print("The area of shape is", b.area1()) print("The shape is:", a) print("The area of shape is", a.area1())
Salida:
The shape is: a triangle The area of a shape is 2464.0 The shape is: a rectangle The area of a shape is 7200
En el código anterior, los métodos tienen el mismo nombre definido como método init y método area1. Los objetos de clase cuadrado y rectángulo se utilizan luego para invocar los dos métodos para realizar diferentes tareas y proporcionar la salida del área del cuadrado y el rectángulo.
Polimorfismo con los métodos de clase
La Python La programación permite a los programadores lograr polimorfismo y sobrecarga de métodos con métodos de clase. Las diferentes clases en Python puede tener métodos que se declaran con el mismo nombre en todo el Python código.
In Python, se pueden definir dos clases diferentes. Una sería la clase secundaria y deriva atributos de otra clase definida denominada clase principal.
El siguiente ejemplo ilustra el concepto de polimorfismo con métodos de clase: –
Python Código:
class amazon: def __init__(self, name, price): self.name = name self.price = price def info(self): print("This is product and am class is invoked. The name is {self.name}. This costs {self.price} rupees.") class flipkart: def __init__(self, name, price): self.name = name self.price = price def info(self): print(f "This is product and fli class is invoked. The name is {self.name}. This costs {self.price} rupees.") FLP = flipkart("Iphone", 2.5) AMZ = amazon("Iphone", 4) for product1 in (FLP, AMZ): product1.info()
Salida:
This is a product, and fli class is invoked. The name is iPhone, and this costs 2.5 rupees. This is a product, and am class is invoked. The name is iPhone, and this costs 4 rupees.
En el código anterior, dos clases diferentes denominadas flipkart y amazon usan los mismos nombres de método info e init para proporcionar cotizaciones de precios respectivas del producto e ilustrar aún más el concepto de polimorfismo en Python.
Diferencia entre sobrecarga de métodos y polimorfismo en tiempo de compilación
En el polimorfismo en tiempo de compilación, el compilador del Python El programa resuelve la llamada. El polimorfismo en tiempo de compilación se logra mediante la sobrecarga de métodos.
La Python El compilador no resuelve las llamadas durante el tiempo de ejecución por polimorfismo. También se clasifica como anulación de métodos, en la que los mismos métodos llevan firmas o propiedades similares, pero forman parte de clases diferentes.
Resumen
- El polimorfismo se puede definir como una condición que se presenta de muchas formas diferentes.
- Un operador en Python ayuda a realizar tareas matemáticas y varias otras tareas de programación.
- Un método definido por el usuario en el Python El lenguaje de programación son métodos que crea el usuario y se declara utilizando la palabra clave def con el nombre de la función.
- Polimorfismo en Python ofrece varias cualidades deseables, como por ejemplo que promueve la reutilización de códigos escritos para diferentes clases y métodos.
- Una clase secundaria es una clase derivada y obtiene sus atributos de la clase principal.
- El polimorfismo también se logra mediante la anulación de métodos en tiempo de ejecución y la sobrecarga de métodos en tiempo de compilación.
- Polimorfismo en Python También se logra mediante la sobrecarga de operadores y métodos de clase.