Python Super Función

Python Super Función
Un script de Python puede hacer tanto programación estructurada como programación orientada a objetos (OOP). Super () es una función de pitón incorporada de OOP. Se prefiere que el conocimiento básico de OOP comprenda el propósito y el uso del súper() método. Una de las características importantes de OOP es la herencia. Se puede crear una nueva clase heredando las características de otra clase, y se llama herencia. Aquí, la nueva clase se llama subclase o clase infantil, y otra clase se llama superclase o clase principal. El super () La función se usa en la clase infantil para referirse a la clase principal y acceder a todas las variables y métodos de clase principal. Esta función hace que la herencia sea más manejable. Cómo se puede usar esta función en Python en este tutorial.

Ejemplo-1: uso de la función super () en herencia única

Cuando se crea una clase infantil heredando una clase de padres, entonces se llama herencia única. El uso del súper() la función en una sola herencia se ha mostrado en el siguiente script. Libro es la clase principal aquí que contiene un método de constructor para inicializar los datos, booktype () método para imprimir el tipo de libro y descuento() El método para mostrar la oferta de descuento está disponible o no. Eng_book es la clase infantil aquí que contiene un método de constructor donde el súper() la función se usa para llamar al constructor de la clase principal. La clase infantil tiene otro método nombrado display_details () para imprimir la información detallada del libro. Los objetos de las clases de padres e hijos se han creado más tarde para llamar a los diferentes métodos de las clases.

# Defina la clase principal
Libro de clase:
# Definir constructor
def __init __ (self, título, autor, tipo, oferta):
ser.título = título
ser.Autor = Autor
ser.tipo = tipo
ser.Oferta = Oferta
# Defina la función para mostrar el tipo de libro
Def Booktype (Self):
Si uno mismo.tipo == 1:
imprimir (" %s es un libro %s." %(ser.Título, 'Ingeniería'))
Si uno mismo.tipo == 2:
imprimir (" %s es un libro %s." %(ser.título, 'médico'))
Si uno mismo.tipo == 3:
imprimir (" %s es un libro %s." %(ser.Título, 'Finanzas'))
# Defina la función para mostrar la oferta de descuento
Descuento de DEF (self):
Si uno mismo.Oferta == Verdadero:
Imprimir ("El libro tiene oferta de descuento.")
demás:
Imprimir ("El libro no tiene oferta de descuento.")
# Defina la clase infantil
Clase Eng_book (libro):
# Definir constructor
Def __init __ (self, título, autor, tipo, oferta, precio):
súper().__init __ (título, autor, tipo, oferta)
ser.precio = precio
# Defina la función para mostrar los detalles del libro
Def display_details (self):
súper().descuento()
Si uno mismo.Oferta == Verdadero:
ser.precio = yo mismo.Precio - Self.precio * 0.15
Imprimir ("Nombre del libro: %s" %self.título)
Imprimir ("Nombre del autor: % s" % self.autor)
Imprimir ("Precio: %0.2f " % self.precio)
Imprimir ("Usando la clase principal:")
# Definir objeto de la clase principal
objbook = libro ('Microbiología médica', 'Ernest Jawetz, Edward A. Adelberg, Joseph L. Melnick ', 2, falso)
# Función de llamada para mostrar el tipo de libro
objero.booktype ()
# Función de llamada para mostrar oferta de descuento
objero.descuento()
Imprimir ("\ Nusing Child Class:")
# Definir objeto de la clase infantil
objengbook = Eng_book ('Matemáticas de ingeniería', 'H K Dass', 1, True, 50)
# Función de llamada para mostrar detalles del libro
objengbook.display_details ()

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior. La primera salida se ha generado utilizando el objeto de la clase principal, y la segunda salida se ha generado utilizando el objeto de la clase infantil.

Ejemplo-2: uso de la función super () en herencias múltiples

Cuando se genera una nueva clase heredando múltiples clases, este tipo de herencia se llama herencia múltiple. El uso de la función super () en herencias múltiples se ha mostrado en el siguiente script. Departamento es la clase principal que contiene un método de constructor para inicializar las variables y el mostrar() Método para imprimir el nombre del departamento. Cursos ¿La clase infantil está heredada de la Departamento clase, y contiene un método de constructor y el display_course_info () Método para mostrar los detalles del curso. Maestros ¿La clase infantil está heredada de la Departamento clase, y contiene un método de constructor y el display_teacher_info () Método para mostrar los detalles del maestro. Profesor_course es la última clase infantil del guión que se ha definido por heredar ambos Cursos y Maestros clases. Los objetos de las tres clases de niños se han creado al final del script para acceder a los diferentes métodos de las clases. El súper() La función se ha utilizado dentro del método del constructor de todas las clases infantiles para llamar al constructor de la clase principal. Se requieren cuatro valores de argumento para crear el objeto de clase infantil porque la construcción de la clase del departamento contiene cuatro argumentos.

# Defina la clase de los padres
Departamento de clase ():
Def __init __ (self, dept_name, total_courses, total_credit, total_teachers):
ser.Dept_name = Dept_name
ser.Total_courses = Total_Courses
ser.Total_credit = Total_Credit
ser.Total_teachers = Total_teachers
DEF DISPLAY (Self):
Imprimir ("Nombre del departamento: % s" % self.Dept_name)
# Defina la primera clase infantil
cursos de clase (departamento):
def __init __ (self, nombre, cursos, créditos, maestros):
# Llame al constructor de clase matriz
súper().__init __ (nombre, cursos, créditos, maestros)
Def display_course_info (self):
Imprimir ("Cursos totales: % d" % self.Total_Courses)
imprimir ("Créditos totales: % d" % self.crédito total)
# Defina la segunda clase infantil
maestros de clase (departamento):
def __init __ (self, nombre, cursos, créditos, maestros):
# Llame al constructor de clase matriz
súper().__init __ (nombre, cursos, créditos, maestros)
Def display_teacher_info (self):
Imprimir ("Total Teachers: % D" % Self.Total_teachers)
# Defina la tercera clase de niños heredado de dos clases
Class Maestro_Course (cursos, maestros):
def __init __ (self, nombre, cursos, créditos, maestros):
# Llame al constructor de la clase matriz
súper().__init __ (nombre, cursos, créditos, maestros)
Def display_details (self):
súper().mostrar()
súper().display_course_info ()
súper().display_teacher_info ()
Imprimir ("Usando la primera clase infantil")
objCourses = cursos ('CSE', 72, 150, 50)
objcourses.mostrar()
objcourses.display_course_info ()
Imprimir ("\ Nusing la segunda clase infantil")
objteachers = maestros ('BBA', 65, 140, 55)
objentes.mostrar()
objentes.display_teacher_info ()
Imprimir ("\ Nusing la tercera clase de niños heredada de múltiples clases")
objdct = maestro_course ('inglés', 60, 122, 20)
objero.display_details ()

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior. Aquí se han generado tres salidas creando los objetos de tres clases infantiles.

Conclusión:

El súper() La función solo se puede usar dentro de la clase infantil para llamar al constructor y cualquier otro método de clase principal. Los usos de esta función se han mostrado en este tutorial mediante la creación de una herencia única y múltiple. Espero que el propósito de usar esta función en OOP se borre después de leer este tutorial.