Εναπόδοση Python
- Προηγούμενη Σελίδα Κλάσεις/Οντότητες Python
- Επόμενη Σελίδα Εκκίνηση Python
Εναπόδοση Python
Η κληρονομικότητα μας επιτρέπει να καθορίσουμε κλάσεις που κληρονομούν όλες τις μεθόδους και τις ιδιότητες μιας άλλης κλάσης.
ΠρογονικήΕίναι η κλάση που κληρονομεί, και ονομάζεται επίσης κλάση βάσης.
ΔιασποράΕίναι η κλάση που προέρχεται από άλλη κλάση, και ονομάζεται επίσης κλάση διασποράς.
Δημιουργία προγονικής κλάσης
Οποιαδήποτε κλάση μπορεί να είναι προγονική, οπότε η γλώσσα είναι ίδια με τη δημιουργία οποιασδήποτε άλλης κλάσης:
Instance
Δημιουργία μιας κλάσης με το όνομα Person που περιέχει τις ιδιότητες firstname και lastname καθώς και τον τρόπο εκτύπωσης printname:
class Person: def __init__(self, onoma, epitheto): self.onoma = fname self.epitheto = lname def printname(self): print(self.onoma, self.epitheto) # Χρήση της Person για τη δημιουργία αντικειμένου και εκτέλεση της μεθόδου printname: x = Person("Bill", "Gates") x.printname()
Δημιουργία υποκλάσης
Για να δημιουργήσετε μια κλάση που κληρονομεί λειτουργίες από άλλη κλάση, στείλτε την κλάση κληρονομικότητας ως παράμετρο στη δημιουργία της υποκλάσης:
Instance
Δημιουργήστε μια κλάση με το όνομα Student που κληρονομεί ιδιότητες και μεθόδους από την κλάση Person:
class Student(Person): pass
Αναγνώριση:Αν δεν θέλετε να προσθέσετε άλλες ιδιότητες ή μεθόδους στην κλάση, χρησιμοποιήστε pass
keyword.
Τώρα, η κλάση Student έχει τα ίδια ιδιωτικά χαρακτηριστικά και μεθόδους με την κλάση Person.
Instance
Δημιουργήστε ένα αντικείμενο της κλάσης Student και εκτελέστε τη μέθοδο printname:
x = Student("Elon", "Musk") x.printname()
Προσθήκη συνάρτησης __init__()
Παρακαλώ, έχουμε δημιουργήσει μια υποκλάση που κληρονομεί τα ιδιωτικά χαρακτηριστικά και τις μεθόδους του γονικού στοιχείου.
θέλουμε να προσθέσουμε __init__()
λειτουργία προστίθεται στην κλάση υποκλήσης (όχι pass
keyword).
Αναγνώριση:Κάθε φορά που χρησιμοποιείτε τη κλάση για τη δημιουργία νέων αντικειμένων, η συνάρτηση __init__() καλείται αυτόματα.
Instance
Προσθέστε τη συνάρτηση __init__() στη κλάση Student:
class Student(Person): def __init__(self, onoma, epitheto): # Προσθήκη ιδιωτικών χαρακτηριστικών κ.λπ.
Όταν προσθέτετε τη συνάρτηση __init__(), η κλάση υποκλήσης δεν κληρονομεί τη συνάρτηση __init__() του γονικού στοιχείου.
Αναγνώριση:Η συνάρτηση __init__() της κλάσης υποκλήσης καλύπτει την κληρονομικότητα της συνάρτησης __init__() του γονικού στοιχείου.
Για να διατηρήσετε την κληρονομικότητα της συνάρτησης __init__() του γονικού στοιχείου, προσθέστε την κλήση της συνάρτησης __init__() του γονικού στοιχείου:
Instance
class Student(Person): def __init__(self, onoma, epitheto): Person.__init__(self, onoma, epitheto)
Τώρα, έχουμε επιτυχώς προσθέσει τη συνάρτηση __init__() και διατηρούμε την κληρονομικότητα του γονικού στοιχείου, είμαστε έτοιμοι να προσθέσουμε λειτουργίες στη συνάρτηση __init__()
χρήση της super() λειτουργίας
O Python έχει επίσης μια super()
λειτουργίας, η οποία θα επιτρέψει στην κλάση υποκλήσης να αποκτήσει όλα τα μέθοδους και τα ιδιωτικά χαρακτηριστικά από την κλάση κληρονομικότητας:
Instance
class Student(Person): def __init__(self, onoma, epitheto): super().__init__(fname, lname)
με τη χρήση της super()
λειτουργία, δεν χρειάζεται να χρησιμοποιήσετε το όνομα του γονικού στοιχείου, θα αποκτήσει αυτόματα τα μέθοδους και τα ιδιωτικά χαρακτηριστικά από το γονικό στοιχείο.
προσθέτει ιδιωτικούς χαρακτηριστικούς
Instance
Προσθέστε το όνομα του έτους αποφοίτησης
τοις ιδιωτικοῖς χαρακτηριστικούς Student
Κλάση:
class Student(Person): def __init__(self, onoma, epitheto): super().__init__(fname, lname) self.graduationyear = 2019
Σε αυτό το παράδειγμα, το έτος 2019 πρέπει να είναι μια μεταβλητή και να μεταφέρεται στην κλάση Student κατά τη δημιουργία του αντικειμένου student. Για αυτό, προσθέστε μια άλλη παράμετρο στον γλωσσικό τύπο __init__():
Instance
Προσθέστε έτος
παράμετροι, και μεταφέρετε το σωστό έτος κατά τη δημιουργία του αντικειμένου:
class Student(Person): def __init__(self, fname, lname, έτος) super().__init__(fname, lname) self.graduationyear = year x = Student("Elon", "Musk", 2019)
Προσθέστε Μέθοδο
Instance
Προσθέστε το όνομα welcome
Προσθέστε τον τύπο μέθοδου στην κλάση Student:
class Student(Person): def __init__(self, fname, lname, year): super().__init__(fname, lname) self.graduationyear = year def welcome(self): print("Καλωσορίσατε", self.firstname, self.lastname, "στην τάξη του", self.graduationyear)
Συμβουλή:Αν προσθέσετε έναν μεθόδου με το ίδιο όνομα στον υποκλάδο που υπάρχει ήδη στον κλάδο γονέα, θα καλύψετε την κληρονομική μέθοδο.
- Προηγούμενη Σελίδα Κλάσεις/Οντότητες Python
- Επόμενη Σελίδα Εκκίνηση Python