Cuprins[Ascunde][Spectacol]
Printre dezvoltatori, programarea orientată pe obiecte a atras un număr considerabil de urmăritori. Limbajul popular de calculator Python aderă, de asemenea, la paradigma orientată pe obiecte.
Se ocupă cu definirea obiectelor și claselor în Python, care formează baza principiilor OOP. În acest tutorial despre „programarea orientată pe obiecte în Python”, veți învăța cum să declarați clase Python, să creați obiecte din ele și să utilizați cele patru tehnici OOP.
Deci, primul lucru mai întâi.
Ce este programarea orientată pe obiecte?
Principalul obiectiv al programării orientate pe obiecte (OOP) este crearea de „obiecte”. O colecție de variabile și funcții interconectate formează un obiect.
Aceste variabile sunt adesea denumite atribute ale obiectului, iar comportamentele sale sunt denumite frecvent funcțiile sale. Aceste elemente oferă aplicației o structură mai eficientă și mai ușor de înțeles. Un automobil este un exemplu de articol.
Dacă automobilul ar fi un articol, atributele sale ar include lucruri precum culoarea, modelul, prețul, marca, etc. În plus, ar accelera, încetini și schimba vitezele.
O altă ilustrare: dacă ne gândim la un câine ca la un articol, atunci unele dintre caracteristicile acestuia ar putea fi culoarea, rasa, numele, greutatea etc. Și el s-ar mișca, lătră, se joacă etc.
Deoarece încorporează concepte din lumea reală, cum ar fi obiectele, ascunderea, moștenirea etc. în programare, programarea orientată pe obiecte este binecunoscută. Deoarece este atât de similar cu circumstanțele din lumea reală, vizualizarea este simplificată.
Concepte de programare orientată pe obiecte
Clase și obiecte în Python
Ca toate celelalte limbaje orientate pe obiecte, Python vă permite să proiectați clase pentru a genera obiecte. Cele mai populare tipuri de date din Python, inclusiv șiruri de caractere, liste, dicționare și alte obiecte, sunt clase încorporate.
O clasă este un grup de metode legate și variabile de instanță care definesc un anumit tip de obiect. O clasă poate fi văzută ca model sau șablon pentru un obiect. Variabilele care alcătuiesc o clasă sunt cunoscute ca atribute.
Un obiect este un membru al unei clase care are un set definit de atribute. Din acest motiv, orice număr de obiecte poate fi creat folosind aceeași clasă.
Clasele Python sunt definite folosind cuvântul clasă, care este apoi urmat de numele clasei și două puncte. O ilustrare a unei clase de papagali ar putea fi:
Aici, declarăm clasa goală Parrot folosind cuvântul cheie class. Creăm instanțe din clase. O instanță este un anumit obiect care a fost realizat dintr-o anumită clasă. „pass” este folosit frecvent ca substitut pentru codul a cărui implementare putem renunța pentru moment. Putem executa codul Python fără a genera o eroare folosind cuvântul cheie „pass”.
O instanțiere a unei clase are ca rezultat un obiect (instanță). Doar descrierea obiectului este definită atunci când este creată o clasă. Ca urmare, nu este alocată nicio memorie sau memorie RAM.
Un exemplu de obiect de clasă papagal este:
Obj este un obiect din clasa Papagal în acest caz.
Să presupunem că știm detalii despre papagali. Vom demonstra acum cum să creăm clasa papagali și obiectele acesteia.
Metodă specială ( __init__ )
O metodă numită init definește atributele pe care trebuie să le aibă fiecare obiect Parrot (). Când se formează un nou obiect Parrot, funcția __init__ creează starea inițială a obiectului prin alocarea valorilor pe care le furnizăm în cadrul proprietăților obiectului.
Deci, fiecare instanță nouă a clasei este inițializată folosind __init__(). Deși __init__() poate accepta orice număr de parametri, self este întotdeauna primul parametru.
O referință la instanța de clasă activă este inclusă în auto-argument. Parametrul self, care se leagă de adresa obiectului curent al unei clase și ne oferă acces la datele variabilelor sale (ale obiectului), semnifică acest lucru.
Exemplu 1
Am stabilit o clasă numită Parrot în codul de mai sus. În continuare, sunt definite proprietățile. Caracteristicile unui lucru sunt proprietățile sale. Funcția __init__ a clasei este locul unde sunt specificate aceste caracteristici.
Când se formează un obiect, metoda de inițializare este cea care este numită inițial. Apoi, sunt create instanțe ale clasei Parrot. Blaze și Wonda în acest caz sunt referințe (valori) la noile noastre obiecte. __class .species ne permite să accesăm atributul class.
Fiecare instanță a unei clase are aceleași caracteristici. Caracteristicile instanței pot fi accesate și folosind blaze.name și blaze.age. Toate instanțele unei clase au atribute de instanță unice, totuși.
Exemplu 2
Metode
Funcțiile definite în corpul unei clase sunt numite metode. Acestea sunt folosite pentru a specifica modul în care se va comporta un articol.
Două metode, sing() și dance, sunt definite în aplicația menționată mai sus (). Deoarece sunt invocate pe un obiect de instanță, cum ar fi flacără, acestea sunt denumite metode de instanță.
Fundamentele conceptului OOPS
Cele patru idei de bază ale programării orientate pe obiecte sunt:
- Moştenire
- încapsularea
- polimorfismul
- abstracțiune
Moştenire
Oamenii le spun frecvent nou-născuților că au trăsături faciale care seamănă cu cele ale părinților lor sau că au moștenit trăsături specifice de la părinți.
Este posibil să fi observat și că împărtășești câteva caracteristici cu părinții tăi. Situația din lumea reală este destul de asemănătoare cu moștenirea.
Cu toate acestea, în acest caz, caracteristicile „claselor părinte” sunt transmise la „clasele de copii”. Aceste aspecte sunt denumite „proprietăți” și „metode” în acest context.
O clasă își poate deriva metodele și atributele dintr-o altă clasă folosind tehnica cunoscută sub numele de moștenire. Moștenirea este procesul prin care o clasă copil primește proprietățile unei clase părinte.
Exemplu:
Clasa părinte Human este moștenită de clasa copil Boy din exemplul de mai sus. Deoarece Boy moștenește de la Human, putem accesa toate metodele și atributele sale atunci când creăm o instanță a clasei Boy.
În clasa Boy, a fost definită și o metodă numită schoolName. Obiectul clasei părinte nu poate accesa metoda schoolName. Metoda schoolName poate fi, totuși, apelată prin crearea unui obiect de clasă copil (Boy).
încapsularea
Acordarea fiecărei variabile din programul de acces global nu este o mișcare înțeleaptă atunci când lucrați cu clase și gestionați date sensibile.
Fără a oferi programului acces complet la oricare dintre aceste variabile, încapsularea ne oferă un mecanism pentru a obține variabilele necesare.
Metodele care sunt definite explicit în acest scop pot fi utilizate pentru a actualiza, edita sau șterge date din variabile. Această metodă de programare are avantajele securității sporite și controlului asupra datelor introduse.
Vedeți cât de repede pot fi accesibile variabilele în demonstrația de mai jos:
polimorfismul
Să presupunem că folosiți telefonul pentru a căuta Fluxuri Instagram. Când ați simțit nevoia de a asculta muzică, ați accesat Spotify și ați început să redați melodia preferată.
După un timp, ați primit un apel, așa că ați întrerupt orice făceați în fundal pentru a răspunde. Prietenul tău a sunat și a cerut să le trimiți un mesaj cu numărul de telefon al unei anumite persoane.
Așa că i-ai trimis numărul de telefon prin SMS și ai continuat cu sarcinile tale. Ai înțeles ceva? Cu un singur dispozitiv, telefonul mobil, puteți naviga prin fluxuri, asculta muzică, prelua și efectua apeluri telefonice și trimite mesaje.
Prin urmare, polimorfismul este comparabil cu acesta. Poly înseamnă numeroase, iar morph denotă forme diferite. Prin urmare, polimorfismul în ansamblu se referă la ceva cu diverse forme.
Sau „ceva” care, în funcție de circumstanță, poate prezenta o varietate de comportamente. În OOPS, polimorfismul descrie funcții cu aceleași nume, dar comportamente distincte. Alternativ, o semnătură de funcție diferită cu același nume de funcție (parametrii trecuți funcției).
Exemplu:
Aici, putem folosi animalul variabil pentru a itera prin obiectele Zebrei și Iepurelui, folosind metodele de instanță respective. Ca rezultat, comportamentul (culoare() și mănâncă()) atât al Zebrei, cât și al Iepurelui este reprezentat aici de o singură variabilă numită animal. Prin urmare, respectă regulile polimorfismului.
abstracțiune
Cel mai probabil, utilizați un laptop, telefon sau tabletă pentru a citi acest conținut. În timp ce îl citiți, probabil că luați notițe, subliniați pasaje cheie și poate stocați unele informații în fișierele dvs. personale.
Tot ce puteți vedea când citiți acest lucru este un „ecran” cu datele care vă sunt afișate. Doar vezi tastele tastaturii pe măsură ce tastați, așa că nu trebuie să vă faceți griji cu privire la subtilitățile interne, cum ar fi modul în care apăsarea unei taste poate face ca acel cuvânt să apară pe ecran.
Alternativ, modul în care apăsarea unui buton de pe ecran poate lansa o nouă filă.
Prin urmare, orice putem observa în această situație este abstract. Putem vedea doar rezultatul pe care îl creează și nu complexitățile interioare (care contează de fapt pentru noi).
Similar cu aceasta, abstractizarea dezvăluie doar funcțiile pe care totul le posedă, ascunzând orice implementare sau detalii interne.
Obiectivul major al abstractizării este de a ascunde informațiile de fundal și orice implementare a datelor străine, astfel încât oamenii să vadă doar ceea ce trebuie să vadă. Ajută la gestionarea complexității codului.
Exemplu:
O clasă abstractă legată de vehicul este prezentă aici. Pentru că moștenește din clasa abstractă ABC, este abstractă. Deoarece metodele abstracte nu sunt definite sau rămân goale, clasa Vehicul are o metodă abstractă numită nr de roți care nu are o definiție.
Ei anticipează clasele care moștenesc clasele abstracte pentru a da implementarea metodei.
Beneficiile conceptelor OOPS
- Prin încapsulare, se realizează securitate ridicată și confidențialitatea datelor.
- Flexibilitate în a avea mai multe versiuni polimorfe ale aceleiași clase.
- Nivelul ridicat de complexitate a codului a fost redus prin abstracție.
- În loc să parcurgeți sute de linii de cod pentru a localiza o singură problemă, modularitatea programării face depanarea simplă.
- Reutilizarea codului este cauzată de moștenirea proprietăților clasei părinte de către o clasă copil.
- Rezolvarea eficientă a problemelor este posibilă deoarece creăm clase care fac acțiunile necesare pentru fiecare mini-problemă. Următoarea problemă poate fi rezolvată și mai rapid, deoarece putem reutiliza acele clase.
Concluzie
În concluzie, am aflat despre ideile OOPS în Python, cea mai tare paradigmă de programare în acest moment.
După ce ați citit acest lucru, trebuie să fi realizat că paradigma OOPS se ocupă în întregime de ideea de clase și obiecte. și concepte OOPS, cum ar fi încapsularea, polimorfismul, moștenirea și abstracția.
Lasă un comentariu