Ereditarietà Python
- Pagina Precedente Classe/Oggetto Python
- Pagina Successiva Iterazione Python
Ereditarietà Python
L'ereditarietà ci permette di definire una classe che deriva tutti i metodi e le proprietà di un'altra classe.
Classe padreÈ una classe derivata, anche detta classe base.
Classe figliaÈ una classe derivata da un'altra classe, anche detta classe derivata.
Creare una classe padre
Ogni classe può essere una classe padre, quindi la sintassi è la stessa di quando si crea qualsiasi altra classe:
Esempio
Creare una classe denominata Person che contiene le proprietà firstname e lastname e il metodo printname:
class Person: def __init__(self, fname, lname): self.firstname = fname self.lastname = lname def printname(self): print(self.firstname, self.lastname) # Creare un oggetto con Person e eseguire il metodo printname: x = Person("Bill", "Gates") x.printname()
Creare una sottoclasse
Per creare una classe che erediterà funzionalità da altre classi, inviare il padre come parametro durante la creazione della sottoclasse:
Esempio
Creare una classe chiamata Student che erediterà le proprietà e i metodi dalla classe Person:
class Student(Person): pass
Nota:Se non si desidera aggiungere altre proprietà o metodi alla classe, utilizzare pass
chiave.
Ora, la classe Student ha le stesse proprietà e metodi della classe Person.
Esempio
Creare un oggetto con la classe Student e eseguire il metodo printname:
x = Student("Elon", "Musk") x.printname()
Aggiungere __init__()
Finora, abbiamo creato una sottoclasse che ha ereditato le proprietà e i metodi del padre.
vogliamo aggiungere __init__()
funzione aggiunta alla sottoclasse (non pass
chiave).
Nota:Ogni volta che si utilizza la classe per creare un nuovo oggetto, la funzione __init__() viene chiamata automaticamente.
Esempio
Aggiungere la funzione __init__() alla classe Student:
class Student(Person): def __init__(self, fname, lname): # Aggiungere proprietà ecc.
Quando si aggiunge la funzione __init__(), la sottoclasse non erediterà più la funzione __init__() del padre.
Nota:La funzione __init__() del figlio sovrascriverà l'ereditarietà della funzione __init__() del padre.
Per mantenere l'ereditarietà della funzione __init__() del padre, aggiungere la chiamata alla funzione __init__() del padre:
Esempio
class Student(Person): def __init__(self, fname, lname): Person.__init__(self, fname, lname)
Ora, abbiamo aggiunto con successo la funzione __init__() e mantenuto l'ereditarietà della classe padre, siamo pronti ad aggiungere funzionalità alla funzione __init__().
usando la funzione super()
Python ha anche un super()
funzione, farà sì che la sottoclasse erediterà tutti i metodi e le proprietà dal padre:
Esempio
class Student(Person): def __init__(self, fname, lname): super().__init__(fname, lname)
usando la funzione super()
funzione, non è necessario utilizzare il nome dell'elemento padre, erediterà automaticamente i metodi e le proprietà dal suo elemento padre.
aggiungere proprietà
Esempio
Aggiungi Un graduationyear
aggiungere le proprietà a Student
Classe:
class Student(Person): def __init__(self, fname, lname): super().__init__(fname, lname) self.graduationyear = 2019
In Questo Esempio, L'Anno 2019 Dovrebbe Essere Un Variabile E Passato Al Generico Student Durante La Creazione Dello Oggetto. Per Fare Questo, Aggiungi Un Altro Parametro Al Funzione __init__():
Esempio
Aggiungi year
Parametri, E Passali La Corretta Anno Durante La Creazione Dello Oggetto:
class Student(Person): def __init__(self, fname, lname, year) super().__init__(fname, lname) self.graduationyear = year x = Student("Elon", "Musk", 2019)
Aggiungi Metodo
Esempio
Aggiungi Un welcome
Aggiungi Il Metodo Al Generico Student:
class Student(Person): def __init__(self, fname, lname, year): super().__init__(fname, lname) self.graduationyear = year def welcome(self): print("Benvenuto", self.firstname, self.lastname, "alla classe di", self.graduationyear)
Suggerimento:Se Aggiungi Un Metodo Con Lo Stesso Nome Di Un Metodo Del Padre Nella Sottoclasse, Copierai L'Ereditarieta' Del Metodo Padre.
- Pagina Precedente Classe/Oggetto Python
- Pagina Successiva Iterazione Python