CURS ONLINE INTERACTIV

Python 3

PENTRU ÎNCEPĂTORI

Proiect susținut de Uniunea Profesorilor de Informatică din România
TEORIE
1 / 1
Python este orientat pe obiecte

Dar ce este OOP?

În Python aproape orice este reprezentat ca un obiect, iar noțiunea este esențială.

Conceptul poate fi întâlnit sub diverse denumiri, cum ar fi: programare orientată pe obiecte (POO), programare obiectuală, programare orientată spre obiect ori OOP – Object Oriented Programming.

Suntem înconjurați de obiecte în jurul nostru care au anumite proprietăți ori caracteristici de bază și funcții care ne fac viața mai ușoară. Să considerăm de exemplu mașina de spălat rufe pe care o avem în casă:



Bineînțeles că fiecare produs are mult mai multe caracteristici ori funcții diferite sau nu, însă orice mașină de spălat le deține și pe acestea. Deci, putem defini o clasă de obiecte numită mașină_de_spălat.

Am căutat pe Internet... Bosch WAN28108GB, Indesit IWC8125, Beko WTG841 sunt mașini de spălat rufe cu anumite caracteristici. Toate însă fac parte din aceeași clasă numită de noi ca exemplu - mașină_de_spălat.

Așa și în cazul programării orientată pe obiecte putem defini conceptele de clasă și obiect.

Prin încapsulare înțelegem mecanismul prin care datele membre (variabilele) și funcțiile (numite în acest caz metode) sunt plasate împreună, într-o unică structură, numită clasă.

Așadar, putem defini clasa



Atunci când un constructor creează o nouă mașină de spălat, este realizat un nou obiect al clasei mașină_de_spălat, care este o instanțiere a acesteia. Clasa este doar o structură abstractă, precum vedeți!

Exercițiu

Luați o foaie de hârtie și definiți și voi clase de obiecte, cum ar fi autoturism, televizor ori telefon. Notați proprietățile și funcțiile esențiale.

Revenim la Python

Rețineți termenii de încapsulare, clasă, obiect, dată membru, metodă, constructor și instanțiere!

Nu e greu! E un concept de excepție. Nu va fi prezentată teoria OOP pentru moment, însă avem nevoie de aceste noțiuni pentru a înțelege cele ce urmează.

Tipurile de date prezentate până acum, int, float și str, sunt clase de obiecte:
Editor - teorie3_oop.py
       
Rezultatul în consolă done
Mecanismul. Se creează un nou obiect reținut de variabila x, prin constructorul (funcția) int() care instanțiază clasa numerelor întregi cu semn, adică int, cu valoarea datei membru fiind 7.

Observație. După cum vedeți, numele constructorului este același cu cel al clasei respective. Dacă am fi scris x = int(), data membru ar fi reținut 0 (valoarea implicită).

Alt exemplu

Definim variabile ce rețin obiecte de tip float:



Observăm constructorul float() de fiecare dată.

Apoi, am folosit metoda is_integer() care testează dacă valoarea (data membru) reținută este sau nu un număr întreg cu semn. Accesul la metodele unei clase se realizează utilizând operatorul punct ".":

obiect.metoda(argumente)

O metodă a clasei respective poate sau nu să întoarcă un rezultat. Mai sus is_integer() ne specifică o valoare de adevăr, însă altele pot avea rolul doar de a prelucra informația. De asemenea, argumentele pot lipsi, depinde doar de definiția metodei.

Atenție. Metoda is_integer() aparține clasei float. Dacă încercați să o apelați pentru un obiect de tip int, veți obține eroare:



Metoda nu a fost definită pentru clasa int deoarece nu are rost... știm că obiectul conține deja un întreg!

Nu uitați!

Un obiect este instanțierea unei clase efectuată de un constructor.

Clasa are încapsulate date și metode proprii care sunt structurate abstract.

Este suficient pentru moment... 🤠
Reține aceste informații importante.
 arrow_back   home   perm_identity   list   arrow_upward