Conceptul de programare orientată pe obiecte în Python
Publicat: 2020-12-01Orientat pe obiect este o paradigmă de programare care urmează conceptul de clase și obiecte în locul funcțiilor și logicii. Este, de asemenea, cunoscut sub numele de modul elegant de codare care organizează codul într-un mod care crește lizibilitatea și mentenabilitatea codului. Conceptul OOP este un subiect important în programare și ajută la construirea de module reutilizabile pentru o varietate de sarcini din Data Science.
Aceasta este adesea o condiție prealabilă în timpul construirii modelelor de învățare profundă folosind diverse biblioteci, cum ar fi Pytorch, unde modelul de bază este reutilizat pentru a adăuga straturi personalizate. Să explorăm ce învață acest concept și cum să îl aplicăm în cazuri practice de utilizare.
Cuprins
Ce este conceptul OOP?
Luați în considerare un smartphone care poate fi de orice marcă, dar sunt o varietate de lucruri comune printre toate. Toate au ecrane, difuzoare, butoane și la nivel de software, aproape toate sunt alimentate de Android. Acum luați în considerare un caz în care fiecare companie își face software-ul de la zero, chiar și nucleul care controlează majoritatea componentelor hardware.
Acesta ar deveni un proces obositor și costisitor, prin urmare, crește prețul dispozitivelor. Ce se întâmplă dacă există un model abstract sau generalizat care poate fi modificat în timp de orice producător în funcție de cerințele acestuia? Acest concept încearcă să surprindă această metodă bazată pe clasă în care codul este structurat în clase cu diferite metode accesorii.
Ce sunt clasele și obiectele?
Clasele sunt planurile a ceea ce trebuie implementat. Dacă luăm în considerare exemplul nostru anterior, putem avea funcționalități pentru a apela o persoană, a primi apeluri, mesaje, a reda muzică sau a face alte lucruri.
Toate aceste lucruri sunt comune pentru fiecare smartphone, funcționarea lor internă este, de asemenea, similară și pot fi considerate ca o clasă de funcții de smartphone sau o clasă. Obiectele pot fi definite ca fiind toate mărcile de smartphone-uri care vor folosi această implementare comună în produsele lor cu modificări.
Pot exista mai multe instanțe ale acestei clase de bază și fiecare instanță poate deține o stare diferită de valori fără a interfera cu alte obiecte. În Python, o clasă poate fi declarată folosind clasa de cuvinte cheie rezervată. Mai mult, constructorul __init__ este folosit pentru a inițializa variabilele clasei.
clasa Companie:
def __init__ (auto):
self.name = 'upGrad'
def display_name (self):
print(f”Numele companiei este: {self.name}”)
cm = Companie()
cm.display_name()
Citește și: Salariu pentru dezvoltatori Python în India
Diferiți piloni ai POO
Acum că suntem familiarizați cu elementele de bază ale acestei paradigme, să ne uităm la unele dintre cele mai importante caracteristici/caracteristici ale acestui concept:
Încapsulare
Aceasta afirmă că metodele (sau funcțiile) ale clasei și datele asociate cu aceasta sunt încapsulate sau protejate împotriva accesului accidental sau extern. Aceasta înseamnă că atributele care sunt definite în domeniul privat sau protejat nu sunt accesibile în afara clasei.
Există o preocupare pentru Python că nu există un concept de variabile private în acest limbaj, astfel încât atributele sunt accesibile în afara clasei.
Există o modalitate de a recunoaște atributele private folosind o liniuță de subliniere dublă la începutul declarației și dacă încercați să accesați aceasta în afara clasei prin intermediul obiectului acesteia, vi se va solicita AttributeError, deoarece Python aplică deformarea numelui ori de câte ori detectează. o variabilă privată. Acest lucru nu oferă nicio securitate atributelor dvs., deoarece acestea sunt încă accesibile.
Moştenire
După cum sugerează cuvântul, aceasta duce o porțiune a unei clase existente numită clasă părinte la o clasă nouă numită clasă copil cu modificări mici sau deloc. Putem conecta acest lucru la exemplul nostru, astfel încât toate mărcile de smartphone-uri moștenesc o clasă de telefon generică care îi va ajuta să îndeplinească funcții de bază, plus că își pot adăuga codurile suplimentare pentru a îmbunătăți experiența utilizatorului în funcție de nevoile lor. În Python, moștenirea unei clase se face prin:
clasa a:
ceva conținut
clasa B(A):
continutul clasei derivate
Există un alt concept legat de moștenire numit suprascrierea funcției. Să presupunem că funcția de cameră a smartphone-ului generic nu este atât de bună, iar producătorul are o soluție mai bună pentru asta. Ei pot suprascrie direct această funcție definind-o din nou în clasa copil și aplică modificările acolo.

Abstracția
Acesta definește planul sau o interfață pentru implementările subclaselor. Înseamnă că unele metode sunt definite în clasa de bază, care nu este implementată complet și este definită doar o vedere abstractă. Poate ajuta la urmărirea diferitelor caracteristici ale modulului și submodulelor care urmează să fie create.
De exemplu, unele smartphone-uri acceptă NFC (near field connectivity) și această funcționalitate poate fi definită în clasa de bază, iar implementarea ei poate fi codificată în clasa copil a telefonului rezultat. În acest fel, clasa de bază abstractă poate oferi imaginea de ansamblu a modulului și a implementărilor ulterioare. Iată un exemplu:
Telefon clasa:
def camera(self):
trece
def NFC(self):
trece
clasa Xyz(Telefon):
def NFC(self):
returnează Adevărat
Aflați despre: Cele mai bune instrumente Python
Polimorfismul
Dacă mergem după semnificația rădăcină, înseamnă mai multe forme ale aceluiași lucru. Polimorfismul definește funcțiile în funcție de numărul sau tipurile de argumente transmise. De exemplu, funcția de lungime din Python poate lua orice tip de iterabil sau obiect și returnează lungimea întregului.
Acest lucru poate fi, de asemenea, citat ca supraîncărcare a funcției, dar aici este o captură în limbajul Python. Nu putem defini aceleași funcții de nume cu argumente diferite și, dacă este făcută, atunci ia în considerare doar ultima intrare.
Cazuri practice de utilizare a POO
Am văzut despre ce este acest concept și ce caracteristici oferă. Aruncă o privire la câteva exemple în care poți aplica acest concept:
Șabloane Jinja: Dacă aveți ceva experiență cu cadrul Python Flask care se ocupă de rute și de partea serverului, acest șablon vă ajută să gestionați aceste date pe front-end. În general, este creat un fișier HTML de bază care este apoi moștenit de toate paginile pentru a avea același aspect pe tot site-ul.
Aplicații Kivy: Aceasta este o bibliotecă care vă permite să construiți aplicații python bazate pe GUI pe mai multe platforme (android și IOS), iar aici cea mai mare parte a programării se bazează pe conceptul OOP.
ORM: Object-relational Mappers oferă o modalitate de a defini bazele de date relaționale în codul aplicației folosind orice limbaj. De exemplu, în Django, puteți defini diferite tipuri de modele folosind clase pentru diferite tipuri de utilizatori.
Concluzie
În acest articol, am discutat despre ce este conceptul OOP, elementele de bază ale acestuia (clase și obiecte), diferiți piloni și am evidențiat câteva exemple în care această paradigmă este adoptată. Există numeroase locuri în care această metodă de programare este considerată datorită unei mai bune gestionări a codului, colaborării și furnizării de funcționalități abstracte altor programe dependente de aceasta.
Dacă sunteți curios să aflați despre python, știința datelor, consultați Diploma PG în știința datelor de la IIIT-B și upGrad, care este creată pentru profesioniști care lucrează și oferă peste 10 studii de caz și proiecte, ateliere practice practice, mentorat cu experți din industrie, 1-la-1 cu mentori din industrie, peste 400 de ore de învățare și asistență profesională cu firme de top.
Ce este OOP?
Programarea orientată pe obiecte, abreviată ca OOP, este o tehnică de programare a computerului care organizează proiectele software în funcție de date, în loc să le organizeze în funcție de funcții și logică. OOP se concentrează pe obiecte, adică pe câmpuri de date cu proprietăți și comportament distincte pe care dezvoltatorii doresc să le controleze, mai degrabă decât pe logica necesară pentru a le gestiona. Această metodă de programare este ideală pentru aplicații mari, complicate, care sunt actualizate sau întreținute în mod constant. OOP acoperă inițiativele de producție, design și aplicații mobile. Alte avantaje ale acestui limbaj sunt reutilizarea codului, scalabilitatea și eficiența.
Care sunt diferitele limbi în OOP?
Limbajele de programare orientate pe obiecte alcătuiesc câteva dintre cele mai frecvent utilizate limbaje de codare în industria calculatoarelor de astăzi. Limbile OOP se găsesc peste tot. Aceste limbaje folosesc obiecte care dețin atât date, cât și cod. Încapsularea, abstractizarea, polimorfismul și moștenirea sunt idei de programare orientată pe obiecte. Limbajele populare de programare orientate pe obiecte includ Java, Python, C++, Lisp și Perl. Ele ajută la programare utilizând paradigma claselor și obiectelor. Alte limbaje care acceptă principiile orientate pe obiecte sunt Perl, Objective-C, Dart, Lisp, JavaScript și PHP.
De ce sunt preferate POO?
Există multe motive pentru care sunt preferate POO. Dezvoltatorii pot reutiliza codul orientat pe obiecte. De asemenea, puteți utiliza moștenirea pentru a duplica informațiile și funcționalitățile care au fost create anterior. Acest lucru economisește timp, simplifică codul, economisește spațiu și face codarea mai ușoară pe degete. Deoarece cea mai mare parte a codului este într-o singură locație și este apelată și refolosită, este considerabil mai ușor de întreținut. În timp ce majoritatea limbilor oferă un anumit nivel de securitate, limbile orientate pe obiecte sunt mai convenabile, deoarece încapsularea include securitatea. Limbajele de programare orientate pe obiecte împart un program în obiecte și clase. Acest lucru este avantajos, deoarece oferă aplicației dumneavoastră un cadru mai modular.