Anulación de métodos en Python: ¿Qué es, cómo hacerlo?

Publicado: 2021-09-28

Python es un lenguaje de propósito general de alto nivel que los entusiastas de la programación informática deben aprender. Similar a otros lenguajes informáticos ampliamente utilizados como JAVA, C ++, Golang, Ruby, etc. Python también es un lenguaje de programación orientado a objetos donde la codificación depende de clases y objetos. El concepto permite a los desarrolladores estructurar códigos simples y reutilizables que luego denotan objetos individuales. Hay varias funciones útiles que ofrecen los lenguajes OOP, una de las cuales es la anulación de métodos.

En este artículo, comprenderemos el concepto de herencia para explorar la anulación de métodos en Python. Empecemos por comprender qué es una clase.

Tabla de contenido

¿Qué es una clase?

La clase es una característica o instancia en el paradigma de programación orientada a objetos. Es una plantilla de codificación de programa extendida dentro de un programa. Las clases ayudan a los programadores a ingresar los datos iniciales de cada objeto (matrices, cadenas, variables, etc.) en el momento de la creación. También nos permiten definir las características de la clase y determinar cómo procesarán los datos o proporcionarán información. Hay subclases o clases secundarias bajo las clases principales o superclases definidas en un programa.

¿Qué es la herencia? ¿Cuáles son sus beneficios?

La herencia en la programación orientada a objetos es una propiedad que permite que las características de una clase se hereden a otras clases o subclases. Esto ayuda a evitar la redundancia de datos, compila mejor el programa y limita el alcance de cometer errores.

Esta capacidad de una clase para derivar o heredar características de otras clases se conoce como herencia. La clase cuyas características y propiedades se utilizan para derivar una subclase se denomina clase principal.

Estos son los beneficios de la herencia:

  • La herencia permite a los usuarios representar bien las relaciones en tiempo real.
  • Permite la reutilización de códigos. También permite a los programadores proporcionar más características a una clase.
  • Permite la transición. Supongamos que la clase Q deriva las características de la clase W, entonces las subclases de Q heredarían automáticamente de la clase W.

Tipos de herencia

Hay tres tipos de herencias que son las siguientes;

1. Herencia única

En la herencia única, una clase derivada puede heredar características de una única clase principal. Permite la reutilización de códigos y también la adición de nuevas funcionalidades.

2. Herencia múltiple

Se refiere a transferir las características de más de una clase principal a una subclase. Aquí, las características de la clase base se heredan en la subclase automáticamente.

3. Herencia multinivel

Cuando las características de la clase principal y la subclase se heredan en otra clase derivada, se denomina herencia multinivel.

¿Qué es la anulación de métodos en Python?

La anulación de métodos es una característica de los lenguajes de programación orientados a objetos en los que la subclase o la clase secundaria pueden proporcionar al programa características específicas o un proceso de implementación específico de los datos proporcionados que ya están definidos en la clase principal o la superclase.

Cuando se ingresan los mismos retornos, parámetros o nombres en la subclase que en la clase principal, el método de implementación en la subclase anula el método mencionado en la clase principal. Esto se conoce como anulación de métodos.

Su ejecución depende de los datos que se utilizan para invocar el método y no de los datos de referencia ya proporcionados en la clase principal. Si se utiliza un objeto de la clase principal para invocar el método de implementación que es específico de un programa, se invoca la versión del método escrita en la clase principal. Por otro lado, si se utiliza un objeto de la subclase para invocar el método, la ejecución será de acuerdo a las características mencionadas en la subclase. Si es un principiante y le gustaría adquirir experiencia en ciencia de datos, consulte nuestros cursos de ciencia de datos.

Características de la anulación de métodos

Esta sección explorará las características más destacadas que ofrece la anulación de métodos en python:

  • La anulación de métodos permite el uso de funciones y métodos en Python que tienen el mismo nombre o firma.
  • La sobrecarga de métodos es un ejemplo de polimorfismo en tiempo de ejecución.
  • En la anulación de métodos, siempre se requiere el uso de la función de herencia.
  • La sobrecarga de métodos se lleva a cabo entre las clases padre y las clases hijo.
  • Se utiliza para cambiar el comportamiento y la implementación de los métodos existentes.
  • Siempre existe la necesidad de un mínimo de dos clases para la anulación de métodos.

Descripción de la anulación de métodos: herencia múltiple y multinivel

Las herencias múltiples y multinivel son dos tipos de herencias que ofrecen la mayoría de los lenguajes de programación orientados a objetos. En esta sección, veremos cómo se usa la anulación de métodos en varias herencias y en varios niveles:

1. Herencia múltiple

En este tipo de herencia de clase u objeto, una subclase hereda funciones y características de varias clases o bases principales. Por ejemplo, hay tres clases principales diferentes: class.1, class.2, class.3, y class.a, que es la clase secundaria que ejecuta características de herencias múltiples. La clase.a contendrá características heredadas de las tres clases base.

Aquí hay un programa de muestra:

# Definiendo la clase padre 1

clase Padre1():

# Método de demostración de los padres

def mostrar(auto):

imprimir ("Dentro principal1")

# Definición de la clase de padres 2

clase Padre2():

# Método de demostración de los padres

def mostrar (auto):

imprimir ("Inside Parent2")

# Definición de clase infantil

clase Hijo(Padre1, Padre2):

# Método de demostración del niño

def mostrar(auto):

imprimir ("Niño interior")

# Código del conductor

obj = Niño()

obj.mostrar()

obj.display()

Producción:

niño interior

Padre interno2

2. Herencia multinivel

En este tipo de herencia de clase u objeto, una subclase se hereda directamente de la clase base, que ya tiene características de la clase principal. Es básicamente como la relación padre-hijo o abuelo-nieto. Las características de la subclase son exclusivas de su clase principal. Por ejemplo, hay una clase padre llamada class.Q, y se forma una subclase en la extensión de class.Q. Aquí, la subclase puede actuar como clase base para otra subclase.

Aquí hay un programa de muestra:

clase padre ():

def mostrar (auto):

imprimir ("Padre interno")

clase Niño(Padre):

# Método de demostración del niño

def mostrar(auto):

imprimir ("Niño interior")

clase Nieto(Niño):

# Método de demostración del niño

def mostrar(auto):

imprimir ("Dentro de GrandChild")

# código de conductor

g = Nieto()

g.mostrar()

g.display()

Salida :

Dentro de GrandChild

Padre interno

Invocación de métodos de clase base dentro de métodos anulados

Hay un método en el que se pueden invocar los métodos de la clase principal entre los métodos anulados. Se puede hacer mediante los siguientes procesos:

  • Usando el nombre de la clase

escribir el método de nombre de clase en el método anulado en la subclase puede invocar el método proporcionado en la clase principal.

  • Usando la función de super()

el lenguaje de programación de Python ofrece una función llamada super(), que se usa para referirse especialmente a la clase padre.

Conclusión

La anulación de métodos es una de las características más cruciales del lenguaje Python. La propiedad encuentra un amplio uso en la programación de aplicaciones de ciencia de datos y permite un análisis de datos compacto y eficiente. La anulación de métodos también facilita la compilación de códigos y la verificación. Hay algunos requisitos previos para usar esta función: comprender el concepto básico de clases y herencia.

Si desea obtener información detallada sobre la anulación de métodos en Python, le sugerimos que realice la Maestría en Ciencias en Ciencia de Datos de 18 meses . upGrad ofrece este curso de IIIT Bangalore y Liverpool John Moore's University. El curso le enseña habilidades como estadísticas, análisis predictivo con Python, aprendizaje automático, visualización de datos, análisis de big data y más. Los estudiantes con un sólido conocimiento de los conceptos de Python están bien posicionados para abordar temas como Deep Learning, Natural Language Processing, Business Analytics e Data Engineering.

¡Comuníquese con nosotros hoy para comenzar su viaje de aprendizaje!

Diferenciar entre anular y sobrecargar.

La principal diferencia entre anular y sobrecargar es que la anulación tiene lugar entre los mismos métodos o las mismas firmas, mientras que la sobrecarga ocurre entre los mismos métodos de clase.

1. La sobrecarga de métodos ejemplifica el polimorfismo en tiempo de compilación, mientras que la anulación de métodos ejemplifica el polimorfismo en tiempo de ejecución.
2. La sobrecarga de métodos no se puede ejecutar en Python, mientras que la ejecución de anulación de métodos es posible bajo ciertas condiciones.

¿Cuáles son las características de la anulación de métodos?

Estas son las características de la anulación de métodos:

1. Ejemplifica el polimorfismo en tiempo de ejecución.
2. Establece un vínculo entre la clase padre y la clase hijo.
3. Dado que conecta al menos una clase, necesitamos usar la función de herencia.
4. La anulación de métodos le ayuda a utilizar un solo nombre para más de una función.

Usamos la anulación de métodos para implementar el método de la clase principal en la clase derivada.

¿Cuáles son los diferentes tipos de herencias? ¿Es posible anular métodos privados en Python?

Principalmente, la anulación de métodos utiliza herencias múltiples y multinivel.

En la herencia multinivel, la subclase se hereda de una clase base que consta de características de la clase principal. Pero en el caso de la herencia múltiple, una subclase muestra características de más de una o más clases o bases principales.

La anulación de métodos privados no puede ocurrir en Java, pero es factible en Python usando un proceso conocido como 'mangling de nombres'.