Python 3
Machine Learning

PENTRU ELEVII DE LICEU

LECȚIA 14
PAG. 3 / 4
OOP - Introducere
Acasă >>> Lecții online

Prima noastră clasă

Revenim la clasa mașinilor de spălat din prima pagină a acestei lecții...

Pentru a defini o clasă, folosim cuvântul cheie class, urmat de numele dorit pentru ea (în cazul nostru, masina_de_spalat). Apoi, atenție la indentare din nou, în interiorul ei vom scrie datele și metodele membre, precum mai jos:
Editor - lectia14_oop.py
       
Rezultatul în consolă done

Funcția __init()__

Fără funcția __init()__ nu am putea face nimic deoarece se referă la constructorul clasei, așadar o definim la început pentru a putea reține argumentele trimise la apelul inițial pentru instanțierea clasei, precum și poate alte operații necesare la crearea respectivului obiect.

Avem în exemplul anterior 4 parametri ce pot fi impuși la crearea unui nou obiect și 3 care nu pot fi setați decât ulterior din program, după instanțierea obiectului respectiv. Un altul ("inaltime") se găsește în interiorul funcției, însă nu poate fi impus la instanțiere. Ultimii doi, "latime" și "lungime" sunt în afara acestei funcții.

self

Cuvântul cheie self indică faptul că ne referim la obiectul curent instanțiat în funcția __init()__. Astfel, pentru fiecare dintre cei patru parametri ai funcției __init()__, am creat unul care reține datele trimise din programul principal la apelul contructorului (numele clasei).

Notă. Puteți să nu îi spuneți "self", ci oricum altfel ("obiectul", "masina_curenta"), însă atenție la modul de folosire a acestui cuvânt cheie și sensul său.

Alte detalii

Un aspect important este acela că am impus valori implicite pentru parametri, astfel încât să nu obținem eroare de interpretare dacă nu sunt trecute în program, precum în cazul variabilei m1. Vezi tipurile de argumente pentru funcții în [Lecția 11].

În esență ce am obținut până acum? Am creat o clasă numită masina_de_spalat, care are 7 date membru. Apoi, am creat două obiecte: m1, care are toate valorile default, iar m2, cu date introduse pentru fiecare argument dintre cele patru în parte la instanțiere.

Datele membru se pot modifica, precum vedeți în program. Cele trei date "inaltime", "lungime" și "latime" nu am vrut să le trec direct în antentul funcției de inițializare, ci să le las pentru o modificare ulterioară. Cu toate acestea, pentru a le defini a trebuit să le inițializez cu anumită valoare, în acest caz 0. Mai mult, ultimele două sunt în afara funcției, deci cuvântul cheie "self" nu a mai fost necesar.

După cum observați, avem libertate totală. Putem cere sau nu argumente inițiale la crearea obiectului, putem impune necesitatea unuia dintre ele, ș.a.m.d. Important este ca ceea ce definim ca și clase să ne ofere un suport real în cadrul programelor noastre.
Avansează la pagina următoare.
 home   list  LECȚII   perm_identity   arrow_upward