Python Super Function

Python Super Function
Um script python pode fazer a programação estruturada e a programação orientada a objetos (OOP). Super () é uma função python integrada do OOP. O conhecimento básico do OOP é preferido para entender o propósito e o uso do super() método. Uma das características importantes do OOP é a herança. Uma nova classe pode ser criada herdando os recursos de outra classe e é chamada de herança. Aqui, a nova classe se chama Subclasse ou Classe Child, e outra classe é chamada de classe Superclass ou pai. O super () A função é usada na classe infantil para se referir à classe pai e acessar todas as variáveis ​​e métodos da classe pai. Esta função torna a herança mais gerenciável. Como essa função pode ser usada no Python mostrou neste tutorial.

Exemplo 1: Uso da função super () em herança única

Quando uma classe infantil é criada herdando uma classe pai, é chamada de herança única. O uso do super() A função na herança única mostrou no script a seguir. Livro é a classe pai aqui que contém um método construtor para inicializar os dados, Booktype () método para imprimir o tipo do livro e desconto() Método para exibir a oferta de desconto está disponível ou não. Eng_book é a classe infantil aqui que contém um método construtor onde o super() A função é usada para chamar o construtor da classe pai. A classe infantil tem outro método chamado display_details () Para imprimir as informações detalhadas do livro. Os objetos das classes de pais e filhos foram criados posteriormente para chamar os diferentes métodos dos diferentes métodos.

# Defina a classe pai
livro escolar:
# Defina o construtor
def __init __ (self, título, autor, tipo, oferta):
auto.título = título
auto.autor = autor
auto.tipo = tipo
auto.oferta = oferta
# Defina a função para exibir o tipo de livro
Def Booktype (self):
se eu.tipo == 1:
print (" %s é um livro de %s." %(auto.Título, 'Engenharia'))
se eu.tipo == 2:
print (" %s é um livro de %s." %(auto.Título, 'Medical'))
se eu.tipo == 3:
print (" %s é um livro de %s." %(auto.título, 'Finance'))
# Defina a função para exibir a oferta de desconto
Def Discount (self):
se eu.oferta == true:
impressão ("O livro tem uma oferta de desconto.")
outro:
impressão ("O livro não tem uma oferta de desconto.")
# Defina a classe infantil
Classe Eng_Book (livro):
# Defina o construtor
def __init __ (self, título, autor, tipo, oferta, preço):
super().__init __ (título, autor, tipo, oferta)
auto.Preço = preço
# Defina a função para exibir os detalhes do livro
def Display_details (self):
super().desconto()
se eu.oferta == true:
auto.preço = self.Preço - Self.Preço * 0.15
impressão ("Nome do livro: %s" %self.título)
impressão ("Nome do autor: % s" % self.autor)
print ("Preço: %0.2f " % self.preço)
print ("Usando a classe pai:")
# Defina objeto da classe pai
ObjBook = Book ('Microbiologia Médica', 'Ernest Jawetz, Edward A. Adelberg, Joseph L. Melnick ', 2, False)
# Função de chamada para exibir o tipo de livro
ObjBook.Booktype ()
# Função de chamada para exibir a oferta de desconto
ObjBook.desconto()
Print ("\ NUSing Child Class:")
# Defina objeto de classe infantil
ObjengBook = Eng_Book ('Matemática de Engenharia', 'H K Dass', 1, Verdadeiro, 50)
# Função de chamada para exibir detalhes do livro
Objengbook.display_details ()

Saída:

A saída a seguir aparecerá após a execução do script acima. A primeira saída foi gerada usando o objeto da classe pai e a segunda saída foi gerada usando o objeto da classe infantil.

Exemplo 2: Uso da função super () em múltiplas heranças

Quando uma nova classe é gerada herdando várias classes, esse tipo de herança é chamado de várias heranças. O uso da função super () em múltiplas heranças mostrou no script a seguir. Departamento é a classe pai que contém um método construtor para inicializar as variáveis ​​e o mostrar() Método para imprimir o nome do departamento. Cursos A classe infantil é herdada do Departamento classe, e contém um método construtor e o display_course_info () Método para exibir os detalhes do curso. Professores A classe infantil é herdada do Departamento classe, e contém um método construtor e o display_teacher_info () Método para exibir os detalhes do professor. Professor_course é a última classe infantil do script que foi definido pela herdeira de ambos Cursos e Professores Aulas. Os objetos das três classes infantis foram criados no final do script para acessar os diferentes métodos das classes. O super() A função tem sido usada dentro do método do construtor de todas as classes infantis para chamar o construtor da classe pai. Quatro valores de argumento são necessários para criar o objeto de classe infantil, porque a construção da classe do departamento contém quatro argumentos.

# Defina a classe pai
Departamento de classe ():
def __init __ (self, dept_name, total_courses, total_credit, total_teachers):
auto.dept_name = dept_name
auto.total_courses = total_courses
auto.total_credit = total_credit
auto.total_teachers = total_teachers
def Display (self):
impressão ("Nome do departamento: % s" % self.dept_name)
# Defina a primeira classe infantil
Cursos de classe (Departamento):
def __init __ (eu, nome, cursos, créditos, professores):
# Ligue para o construtor da classe pai
super().__init __ (nome, cursos, créditos, professores)
def Display_Course_info (self):
Imprimir ("Total Cursos: % D" %.total_courses)
Imprimir ("Total de créditos: % d" % self.Crédito total)
# Defina a segunda aula infantil
Professores de classe (Departamento):
def __init __ (eu, nome, cursos, créditos, professores):
# Ligue para o construtor da classe pai
super().__init __ (nome, cursos, créditos, professores)
def Display_teacher_info (self):
Imprimir ("Total de professores: % d" % self.total_teachers)
# Defina a terceira classe infantil herdada de duas classes
Classe professor_course (cursos, professores):
def __init __ (eu, nome, cursos, créditos, professores):
# Ligue para o construtor da classe pai
super().__init __ (nome, cursos, créditos, professores)
def Display_details (self):
super().mostrar()
super().display_course_info ()
super().display_teacher_info ()
print ("Usando a primeira classe infantil")
objcourses = cursos ('cse', 72, 150, 50)
objcourses.mostrar()
objcourses.display_course_info ()
Imprima ("\ NUSING the Second Child Class")
ObjTeachers = Professores ('BBA', 65, 140, 55)
ObjTeachers.mostrar()
ObjTeachers.display_teacher_info ()
Imprima ("\ NUSING A TERCEIRA CLASSE CRIANÇA herdada de várias classes")
objdct = professor_course ('inglês', 60, 122, 20)
objdct.display_details ()

Saída:

A saída a seguir aparecerá após a execução do script acima. Três resultados foram gerados aqui criando os objetos de três classes infantis.

Conclusão:

O super() A função só pode ser usada dentro da classe infantil para ligar para o construtor e qualquer outro método da classe pai. Os usos desta função foram mostrados neste tutorial criando uma herança única e multinível. Espero que o objetivo de usar esta função no OOP seja liberado após a leitura deste tutorial.