Seguendo con la programmazione orientata agli oggetti in Python (OOP) vedremo il patrimonio semplice e multiplo.
Quando parliamo di lezioni c’è un vantaggio molto notevole che è la possibilità che un oggetto appartenente a una classe sia in grado di ereditari gli attributi e metodi di un altro.
semplice ereditarietà vs. multiple Heritage
indice del contenuto
semplice ereditanza
Semplice eredità avviene quando una classe figlia eredita gli attributi e i metodi di una singola classe genitore. Procederemo per creare due classi, un preside e un secondo e secondario, in quest’ultimo aggiungeremo la funzione da presentare accedendo agli attributi della classe madre.
#!/usr/bin/env python# -*- coding: utf-8 -*-#class Estudiante(object): #Creamos la clase padre def __init__(self, edad, nombre): # Definimos los parámetros edad y nombre self.edad = edad #Declaramos que el atributo edad es igual al argumento edad self.nombre = nombre #Declaramos que el atributo nombre es igual al argumento nombreclass Derecho (Estudiante): #Entre paréntesis indicamos la clase padre o principal ESTUDIANTE #Lo que la convierte a DERECHO en una clase hija o secundaria def presentarse(self): #Creamos el método presentarse print (f"Soy {self.nombre} tengo {self.edad} años y estudio Derecho") #Se presenta llamando los atributosManuel = Derecho(26, 'Manuel Contreras') #Indicamos argumentos edad y nombreManuel.presentarse() # Llamamos al método y Manuel se presenta
Risultato:
I Am Manuel Contreras Ho 26 anni e studio giusto
Come vedi assegnare all’oggetto “Manuel” la classe “giusta” che eredita gli attributi di “studente”. L’opposto otterremo un errore perché gli attributi ed età appartengono a uno studente.
Ricorda che per dichiarare una classe che lo facciamo usando il costruttore __init__ e tra parentesi i parametri che daremo loro argomenti al momento dell’assegnazione della classe ad alcuni oggetti.
Nome della classe:
def costructor_init (sé, parametri):
dichiarazione
e se vogliamo la nostra classe per ereditare gli attributi o i metodi di un’altra classe (contiene il costruttore __init __)
classname:
dichiarazioni
Quando creiamo una classe figlia non è necessario Includere il costruttore __init__ se il genitore o la classe principale lo contiene già.
base di classe o genitore
per effettuare l’ereditarietà degli attributi e dei metodi di una classe, deve esistere. La superclasse o la classe principale di cui la figlia o la classe secondaria erediteranno. Cioè, per un bambino esistere, ci deve essere un padre.
Supponiamo di ereditare alcune virtù e difetti dei nostri genitori. Sarebbero le nostre classi primarie o base. E saremmo stata la scuola superiore o una figlia.
Più ereditarietà
Casi di ereditarietà multipli in Python sono dati quando una classe secondaria o figlia ereditano attributi e metodi di più di una classe principale o da papà . Separa semplicemente con un coma sia principale quando si crea la classe secondaria:
Classe NamelaClass (ClassePadre1, ClassPadre2):
Dichiarazioni
Questa classe figlia dovrà ereditare attributi e metodi di entrambe le classi (ClassPadre1 e ClassPadre2).
Vediamo un esempio di più ereditarietà con lo stesso codice precedente, ma ora creando una classe corrispondente all’istituto.
#!/usr/bin/env python# -*- coding: utf-8 -*-#class Estudiante(object): #Creamos la clase padre def __init__(self, edad, nombre): # Definimos los parámetros edad y nombre self.edad = edad #Declaramos que el atributo edad es igual al argumento edad self.nombre = nombre #Declaramos que el atributo nombre es igual al argumento nombreclass Instituto(object): def presentarinstituto (self): print("""Estudio en el Instituto de Leyes 112""")class Derecho (Estudiante, Instituto): #Entre paréntesis indicamos la clase padre o principal ESTUDIANTE #Lo que la convierte a DERECHO en una clase hija o secundaria def presentarse(self): #Creamos el método presentarse print (f"Soy {self.nombre} tengo {self.edad} años y estudio Derecho") #Se presenta llamando los atributos Manuel = Derecho(26, 'Manuel Contreras') #Indicamos argumentos edad y nombreManuel.presentarse() # Llamamos al método y Manuel se presentaManuel.presentarinstituto()Sum Manuel Contreras Ho 26 anni e studio in studio
Studio All’Istituto di legge 112Come possiamo vedere il tipo giusto ora eredita dalla classe principale dello studente e dell’istituto. Pertanto, sebbene l’oggetto “Manuel” appartenga alla classe giusta, siamo autorizzati a utilizzare il metodo “Manuel.presentestivivit ()” che corrisponde alla classe dell’Istituto.
Vantaggi
A Dai vantaggi principali è il riutilizzo del codice che ci consente di stabilire una relazione tra le classi evitando che è necessario ri-dichiarare determinati metodi o attributi.
Le classi consentono di creare oggetti su una raccolta di attributi definiti e Metodi Abstract. E l’abilità di eredità ci consentirà di creare classi secondari più grandi e in grado di ereditando più attributi e metodi di altri nonché più specifici per controllarli per una singola particolare classe.