Suprascrierea metodei în Python: ce este, cum se face?
Publicat: 2021-09-28Python este un limbaj de nivel înalt, de uz general, care este o necesitate de învățat pentru pasionații de programare. Similar cu alte limbaje de calculator utilizate pe scară largă, cum ar fi JAVA, C++, Golang, Ruby etc. Python este, de asemenea, un limbaj de programare orientat pe obiecte în care codificarea depinde de clase și obiecte. Conceptul permite dezvoltatorilor să structureze coduri simple, reutilizabile, care denotă apoi obiecte individuale. Există mai multe funcții utile pe care limbile OOP le oferă, dintre care una este Suprascrierea metodei.
În acest articol, vom înțelege conceptul de moștenire pentru a explora suprascrierea metodei în Python. Să începem cu a înțelege ce este o clasă.
Cuprins
Ce este o clasă?
Clasa este o caracteristică sau o instanță în paradigma de programare orientată pe obiecte. Este un șablon extins de codare a programului în cadrul unui program. Clasele îi ajută pe programatori să introducă datele inițiale ale fiecărui obiect (matrice, șiruri de caractere, variabile etc.) în momentul creării. Ele ne permit, de asemenea, să definim caracteristicile clasei și să stabilim cum vor procesa datele sau vor furniza date de intrare. Există subclase sau clase copil sub clasele părinte sau superclase definite într-un program.
Ce este Moștenirea? Care sunt beneficiile sale?
Moștenirea în programarea orientată pe obiect este o proprietate care permite ca caracteristicile unei clase să fie moștenite către alte clase sau subclase. Acest lucru ajută la prevenirea redundanței datelor, la compilarea mai bună a programului și la limitarea posibilității de a face greșeli.
Această capacitate a unei clase de a deriva sau de a moșteni caracteristici din alte clase este cunoscută sub numele de moștenire. Clasa ale cărei caracteristici și proprietăți sunt utilizate pentru a deriva o subclasă se numește clasa părinte.
Iată beneficiile moștenirii:
- Moștenirea permite utilizatorilor să reprezinte bine relațiile în timp real.
- Permite reutilizarea codurilor. De asemenea, permite programatorilor să ofere mai multe caracteristici unei clase.
- Permite tranziția. Să presupunem că clasa Q derivă caracteristicile din clasa W, atunci subclasele lui Q ar moșteni automat din clasa W.
Tipuri de moștenire
Există trei tipuri de moșteniri care sunt după cum urmează;
1. Moștenire unică
În moștenirea unică, o clasă derivată poate moșteni caracteristici de la o singură clasă părinte. Permite reutilizarea codurilor și, de asemenea, adăugarea de noi funcții.
2. Moștenirea multiplă
Se referă la transferul caracteristicilor mai multor clase părinte la o subclasă. Aici, caracteristicile clasei de bază sunt moștenite automat în subclasă.
3. Moștenirea pe mai multe niveluri
Când caracteristicile clasei părinte și ale subclasei sunt moștenite în continuare într-o altă clasă derivată, se numește moștenire pe mai multe niveluri.
Ce este suprascrierea metodei în Python?
Suprascrierea metodei este o caracteristică a limbajelor de programare orientate pe obiect, în care subclasa sau clasa copil poate furniza programului caracteristici specifice sau un proces specific de implementare a datelor furnizate care sunt deja definite în clasa părinte sau superclasa.
Când în subclasă sunt introduse aceleași returnări, parametri sau nume ca și în clasa părinte, atunci metoda de implementare în subclasă înlocuiește metoda menționată în clasa părinte. Aceasta este cunoscută sub numele de suprascriere a metodei.
Execuția sa depinde de datele care sunt folosite pentru a invoca metoda și nu de datele de referință deja furnizate în clasa părinte. Dacă un obiect al clasei părinte este folosit pentru a invoca metoda de implementare care este specifică unui program, atunci versiunea metodei așa cum este scrisă în clasa părinte este invocată. Pe de altă parte, dacă un obiect al subclasei este folosit pentru a invoca metoda, execuția va fi conform caracteristicilor menționate în subclasă. Dacă sunteți începător și doriți să obțineți experiență în știința datelor, consultați cursurile noastre de știință a datelor.
Caracteristici ale suprascrierii metodei
Această secțiune va explora caracteristicile importante pe care înlocuirea metodei în python le oferă:
- Suprascrierea metodei permite utilizarea funcțiilor și metodelor în Python care au același nume sau semnătură.
- Supraîncărcarea metodei este un exemplu de polimorfism de rulare.
- În anularea metodei, folosirea caracteristicii de moștenire este întotdeauna necesară.
- Supraîncărcarea metodei este efectuată între clasele părinte și clasele copil.
- Este folosit pentru a schimba comportamentul și implementarea metodelor existente.
- Este întotdeauna nevoie de un minim de două clase pentru înlocuirea metodei.
Înțelegerea suprascrierii metodei: moștenirea multiplă și pe mai multe niveluri
Moștenirile multiple și pe mai multe niveluri sunt două tipuri de moșteniri oferite de majoritatea limbajelor de programare orientate pe obiecte. În această secțiune, vom vedea cum este utilizată suprascrierea metodei în moșteniri diferite și pe mai multe niveluri:
1. Moștenirea multiplă
În acest tip de moștenire a clasei sau a obiectului, o subclasă moștenește caracteristicile și caracteristicile mai multor clase părinte sau baze. De exemplu, există trei clase părinte diferite - class.1, class.2, class.3 și există class.a, care este clasa copil care execută caracteristici ale moștenirilor multiple. Class.a va conține caracteristici moștenite din toate cele trei clase de bază.
Iată un exemplu de program:
# Definirea clasei de părinte 1
clasa Parent1():
# Metoda de afișare a părinților
def show(self):
print(„În interiorul părintelui1”)
# Definirea clasei de părinte 2
clasa Parent2():
# Metoda de afișare a părinților
def display(self):
print(„În interiorul părintelui2”)
# Definirea clasei de copii
clasa Copil(Parent1, Parent2):
# Metoda spectacolului copilului
def show(self):
print(„În interiorul copilului”)
# Codul șoferului
obj = Copil()
obj.show()
obj.display()
Ieșire:
În interiorul Copilului
În interiorul părintelui2
2. Moștenirea pe mai multe niveluri
În acest tip de moștenire a clasei sau a obiectului, o subclasă este moștenită direct din clasa de bază, având deja caracteristicile clasei părinte. Practic este ca relația tată-fiu sau bunic-nepot. Caracteristicile subclasei sunt unice pentru clasa părinte. De exemplu, există o clasă părinte numită class.Q, iar o subclasă este formată în extensia class.Q. Aici, subclasa poate acționa ca clasă de bază pentru o altă subclasă.
Iată un exemplu de program:
clasa Părinte():
def display(self):
print(„În interiorul părintelui”)
clasa Copil(Părinte):
# Metoda spectacolului copilului
def show(self):
print(„În interiorul copilului”)
clasa Nepotul(Copilul):
# Metoda spectacolului copilului
def show(self):
print(„În interiorul nepotului”)
# Cod șofer
g = Nepotul()
g.show()
g.display()
Ieșire :
În interiorul Nepotului
În interiorul părintelui
Invocarea metodelor clasei de bază în cadrul metodelor suprascrise
Există o metodă în care metodele clasei părinte pot fi invocate între metodele suprascrise. Se poate realiza folosind următoarele procese:
Folosind numele clasei
scrierea metodei numelui clasei în metoda suprascrisă în subclasă poate invoca metoda furnizată în clasa părinte.
Folosind funcția super()
limbajul de programare al lui Python oferă o funcție numită super(), care este folosită pentru a se referi în special la clasa părinte.
Concluzie
Suprascrierea metodei este una dintre cele mai importante caracteristici ale limbajului Python. Proprietatea este utilizată pe scară largă în programarea aplicațiilor de știință a datelor și permite o analiză compactă și eficientă a datelor. Suprascrierea metodei facilitează, de asemenea, compilarea codurilor și verificarea din nou. Există câteva condiții prealabile pentru utilizarea acestei caracteristici: înțelegerea conceptului de bază de clase și moștenire.
Dacă doriți să aflați în profunzime despre anularea metodei în Python, vă sugerăm să urmați cursul de 18 luni de Master în Știința Datelor . upGrad oferă acest curs de la Universitatea IIIT Bangalore și Liverpool John Moore. Cursul vă învață abilități precum Statistica, Analiza predictivă folosind Python, Învățare automată, Vizualizarea datelor, Analytics Big Data și multe altele. Studenții cu cunoștințe solide despre conceptele Python sunt bine poziționați pentru a aborda subiecte precum Deep Learning, Natural Language Processing, Business Analytics și Data Engineering.
Contactează-ne astăzi pentru a începe călătoria ta de învățare!
Faceți diferența între suprasolicitare și supraîncărcare.
Diferența principală între suprascriere și supraîncărcare este că suprascrierea are loc între aceleași metode sau aceleași semnături, în timp ce supraîncărcarea are loc între aceleași metode de clasă.
1. Supraîncărcarea metodei exemplifică polimorfismul la timp de compilare, în timp ce suprascrierea metodei exemplifică polimorfismul în timpul rulării.
2. Supraîncărcarea metodei nu poate fi executată în Python, în timp ce executarea suprascrierii metodei este posibilă în anumite condiții.
Care sunt caracteristicile suprascrierii metodei?
Iată caracteristicile suprascrierii metodei:
1. Exemplifică polimorfismul de rulare.
2. Stabilește o legătură între clasa părinte și clasa copil.
3. Deoarece conectează cel puțin o clasă, trebuie să folosim caracteristica de moștenire.
4. Suprascrierea metodei vă ajută să utilizați un singur nume pentru mai multe funcții.
Folosim suprascrierea metodei pentru a implementa metoda clasei părinte în clasa derivată.
Care sunt diferitele tipuri de moșteniri? Este posibil să suprascrieți metodele private în Python?
În primul rând, suprascrierea metodei utilizează moșteniri multinivel și multiple.
În moștenirea pe mai multe niveluri, subclasa este moștenită dintr-o clasă de bază constând din caracteristici ale clasei părinte. Dar în cazul moștenirii multiple, o subclasă prezintă caracteristicile mai multor clase sau baze părinte.
Suprascrierea metodei private nu poate avea loc în Java, dar este posibilă în Python folosind un proces cunoscut sub numele de „manglarea numelui”.