Pitón

Función Python super ()

Función Python super ()
Un script de Python puede realizar tanto programación estructurada como programación orientada a objetos (OOP). Super () es una función Python incorporada de OOP. Se prefiere el conocimiento básico de OOP para comprender el propósito y el uso de la súper() método. Una de las características importantes de la programación orientada a objetos 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 secundaria, y otra clase se llama superclase o clase padre. El super () La función se utiliza en la clase secundaria para hacer referencia a la clase principal y acceder a todas las variables y métodos de la clase principal. Esta función hace que la herencia sea más manejable. En este tutorial se muestra cómo se puede usar esta función en Python.

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

Cuando se crea una clase secundaria heredando una clase principal, se denomina herencia única. El uso de la súper() función en herencia única se ha mostrado en el siguiente script. Libro es la clase padre aquí que contiene un método 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 secundaria aquí que contiene un método constructor donde el súper() la función se usa para llamar al constructor de la clase padre. La clase secundaria tiene otro método llamado display_details () para imprimir la información detallada del libro. Los objetos de las clases padre e hijo se crearon más tarde para llamar a los diferentes métodos de las clases.

# Definir la clase padre
Libro de clase:
# Definir constructor
def __init __ (yo, título, autor, tipo, oferta):
uno mismo.title = titulo
uno mismo.autor = autor
uno mismo.tipo = tipo
uno mismo.oferta = oferta
# Definir la función para mostrar el tipo de libro
def bookType (self):
si yo mismo.tipo == 1:
print ("% s es un libro de% s." %(uno mismo.title, 'Ingeniería'))
si yo mismo.tipo == 2:
print ("% s es un libro de% s." %(uno mismo.título, 'Médico'))
si yo mismo.tipo == 3:
print ("% s es un libro de% s." %(uno mismo.título, 'Finanzas'))
# Definir la función para mostrar la oferta de descuento
def descuento (auto):
si yo mismo.oferta == Verdadero:
imprimir ("El libro tiene una oferta de descuento.")
demás:
print ("El libro no tiene oferta de descuento.")
# Definir la clase secundaria
class Eng_book (Libro):
# Definir constructor
def __init __ (yo, título, autor, tipo, oferta, precio):
súper().__init __ (título, autor, tipo, oferta)
uno mismo.precio = precio
# Definir la función para mostrar los detalles del libro
def display_details (self):
súper().descuento()
si yo mismo.oferta == Verdadero:
uno mismo.precio = uno mismo.precio - uno mismo.precio * 0.15
print ("Nombre del libro:% s"% self.título)
print ("Nombre del autor:% s"% self.autor)
print ("Precio:% ​​0.2f "% auto.precio)
print ("Uso de la clase principal:")
# Definir objeto de clase padre
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
objbook.bookType ()
# Función de llamada para mostrar la oferta de descuento
objbook.descuento()
print ("\ nUsando clase secundaria:")
# Definir el objeto de la clase secundaria
objEngBook = Eng_book ('Matemáticas de ingeniería', 'H K Dass', 1, Verdadero, 50)
# Función de llamada para mostrar los 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 secundaria.

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

Cuando se genera una nueva clase heredando varias clases, este tipo de herencia se denomina herencias múltiples. El uso de la función super () en múltiples herencias se muestra en el siguiente script. Departamento es la clase padre que contiene un método constructor para inicializar las variables y el monitor() método para imprimir el nombre del departamento. Cursos son la clase hija heredada de la Departamento clase, y contiene un método constructor y el display_Course_info () método para mostrar el detalle del curso. Profesores son la clase hija heredada de la Departamento clase, y contiene un método constructor y el display_Teacher_info () método para mostrar el detalle del profesor. Teacher_Course es la última clase secundaria del script que se ha definido heredando tanto Cursos y Profesores clases. Los objetos de las tres clases secundarias se han creado al final del script para acceder a los diferentes métodos de las clases. La súper() La función se ha utilizado dentro del método constructor de todas las clases secundarias para llamar al constructor de la clase principal. Se requieren cuatro valores de argumento para crear el objeto de clase secundaria porque la construcción de la clase Departamento contiene cuatro argumentos.

# Definir clase principal
clase Departamento ():
def __init __ (self, dept_name, total_courses, total_credit, total_teachers):
uno mismo.dept_name = dept_name
uno mismo.total_courses = total_courses
uno mismo.crédito_total = crédito_total
uno mismo.total_teachers = total_teachers
def display (self):
print ("Nombre del departamento:% s"% self.nombre_depto)
# Definir la primera clase secundaria
Cursos de clase (Departamento):
def __init __ (yo, nombre, cursos, créditos, profesores):
# Llamar al constructor de la clase padre
súper().__init __ (nombre, cursos, créditos, profesores)
def display_Course_info (yo):
print ("Total de cursos:% d"% self.cursos_total)
print ("Créditos totales:% d"% self.crédito total)
# Definir la segunda clase secundaria
Profesores de clase (Departamento):
def __init __ (yo, nombre, cursos, créditos, profesores):
# Llamar al constructor de la clase padre
súper().__init __ (nombre, cursos, créditos, profesores)
def display_Teacher_info (yo):
print ("Total de profesores:% d"% self.maestros_total)
# Definir la tercera clase hija heredada de dos clases
class Teacher_Course (cursos, profesores):
def __init __ (yo, nombre, cursos, créditos, profesores):
# Llame al constructor de la clase padre
súper().__init __ (nombre, cursos, créditos, profesores)
def display_details (self):
súper().monitor()
súper().display_Course_info ()
súper().display_Teacher_info ()
print ("Usando la primera clase secundaria")
objCourses = Cursos ('CSE', 72, 150, 50)
objCursos.monitor()
objCursos.display_Course_info ()
print ("\ nUsando la segunda clase secundaria")
objTeachers = Profesores ('BBA', 65, 140, 55)
objTeachers.monitor()
objTeachers.display_Teacher_info ()
print ("\ nUtilizando la tercera clase secundaria heredada de varias clases")
objDCT = Teacher_Course ('Inglés', 60, 122, 20)
objDCT.display_details ()

Producción:

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

Conclusión:

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

Cómo impulsar FPS en Linux?
FPS significa Cuadros por segundo. La tarea de FPS es medir la velocidad de fotogramas en reproducciones de video o actuaciones de juegos. En palabras...
Los mejores juegos de Oculus App Lab
Si es propietario de un visor Oculus, debe estar informado sobre la descarga lateral. Sideloading es el proceso de instalación de contenido que no es ...
Los 10 mejores juegos para jugar en Ubuntu
La plataforma Windows ha sido una de las plataformas dominantes para juegos debido al gran porcentaje de juegos que se están desarrollando hoy para ad...