Într-un limbaj orientat obiect, o clasă este o bucată de cod extensibilă care reprezintă un șablon pentru crearea și utilizarea obiectelor acelei clase. Un obiect al unei clase se referă pur și simplu la o instanță a clasei definite.

Bazele clasei Python

În limbajul de programare Python, fiecare bucată de date este reprezentată ca o instanță a unei clase. Dacă nu sunteți familiarizat cu limba, consultați-ne ghid pentru începători către Python înainte de a merge mai departe.

O clasă oferă un set de comportamente sub formă de funcții membre (cunoscute și sub numele de metode), care are implementări comune pentru toate instanțele acelei clase și determină, de asemenea, modul în care informațiile de stare pentru instanța sa sunt reprezentate sub forma atribute.

Citeste mai mult: Metode de clasă în Python: diferențele importante

Codul de mai jos reprezintă un exemplu de clasă definită în Python. Clasa definită în cod oferă o implementare a unei clase RaceCar.

Fiecare instanță a clasei oferă un model simplu pentru diferite mărci de mașini și conține următoarea stare informații: numele mașinii, numele șoferului, numărul plăcuței de înmatriculare a mașinii, viteza actuală, taxa de viteză și culoare.

instagram viewer

Această clasă de mașini modelează un senzor special în fiecare mașină care înregistrează o amendă de 50 USD împotriva șoferului mașinii dacă depășește limita legală de viteză de 140 de mile pe oră.

Exemplu de clasă (clasa auto)


clasa Mașină:
#Constructor
#metoda init este responsabilă pentru inițializarea valorilor instanței #variabile din clasă.
def __init __ (self, auto_name, driver_name, license_plate_number,
current_speed, speeding_charge, color):
auto.nume_mașină = nume_mașină
self._driver_name = driver_name
self._license_plate_number = number_plate_number
self._current_speed = current_speed
self._speeding_charge = viteză_cărcare
self._colour = culoare
#Metode accesorii
#Metoda get_car_name returnează numele mașinii
def get_car_name (auto):
returnează auto._nume_mașină
#Metoda get_driver_name returnează numele driverului
def get_driver_name (auto):
returnează auto._driver_name
#Metoda get_license_plate returnează plăcuța de înmatriculare a mașinii
def get_license_plate (self):
returnează self._license_plate
#Metoda get_current_speed returnează viteza curentă la care se deplasează mașina
def get_current_speed (auto):
returnează self._current_speed
#Metoda get_speeding_charge returnează suma totală de bani pe care
# șoferul trebuie să plătească pentru depășirea vitezei
def get_speeding_charge (auto):
returnează self._speeding_charge
#Metoda get_colour returnează culoarea plimbării noastre dulci!
def get_colour (self):
întoarce-te de sine._culoare
Metode #Mutator
# Valoarea set_driver schimbă șoferul mașinii noastre.
def set_driver (self, new_driver):
self._driver_name = driver_ nou
#Metoda speeding_ticket asigură că șoferul este taxat cu 50 de dolari când # el sau ea au prins viteza de peste 140 de mile pe oră :(
def speeding_ticket (self, current_speed):
dacă current_speed <= 140:
returnează Fals
altceva:
self._speeding_charge + = 50
returnează Adevărat
#Metoda make_payment se asigură că șoferul este capabil să plătească toată suma pe care o datorează pentru taxele de bilet de viteză.
def make_payment (self, sumă_plătită):
self._speeding_charge - = suma_plătită

O explicație a exemplului clasei Python

Parametrul „Sinelui”

În primul rând, rețineți că există o diferență între semnătura de metodă declarată în clasă și semnătura de metodă utilizată de programator pentru a apela funcția. De exemplu, get_colour metoda definită în clasă ia un parametru care este parametrul „auto”.

Cu toate acestea, atunci când programatorul apelează această metodă pe o instanță a clasei, el nu furnizează niciun parametru. Același fenomen poate fi observat în metoda speeding_ticket, care este definită pentru a lua doi parametri din clasă (adică auto și current_speed), dar programatorul este capabil să execute această metodă furnizând valoarea doar pentru ‘current_speed’ parametru.

Acest lucru se datorează faptului că scopul parametrului „auto” furnizat este de a lega metoda de instanța obiect pe care a fost apelată și nu este o valoare care trebuie dată de programator.

Constructorul

Un constructor al unei clase se referă la metoda clasei pe care un utilizator o poate apela pentru a crea o instanță obiect a acelei clase. În clasa Mașină, utilizatorul poate crea o instanță obiect utilizând următoarea sintaxă:

#creating propriul nostru Bugatti :)
Mașină („Bugatti”, „David Sasu”, 90828, 0, 0, „Roșu Cireș”)

Executarea acestui cod are ca rezultat un apel către metoda __init__ din clasa Auto. Responsabilitatea acestei metode este de a genera un obiect de mașină de credit nou creat cu valorile instanței furnizate. Fiecare obiect al clasei Car este format din șase variabile de instanță care sunt:

  • _nume_mașină
  • _nume_șofer
  • _licență_placă
  • _viteza curenta
  • _speeding_charge
  • _culoare

Metode accesor

Acestea sunt metode care sunt scrise pentru a accesa informațiile de stare ale unei instanțe obiect. În clasa Mașină, metodele de accesare care au fost scrise sunt:

  • get_car_name
  • get_driver_name
  • get_license_plate
  • get_current_speed
  • get_speeding_charge
  • get_colour

Metode Mutator:

Acestea sunt metode care sunt scrise pentru a modifica informațiile de stare ale unei instanțe obiect. În clasa Car, metodele mutatoare care au fost scrise sunt:

  • set_driver
  • amenda de viteza
  • plateste

Conceptul de încapsulare

„Incapsulare” este un termen care este folosit pentru a descrie un principiu al proiectării orientate pe obiecte în care componentele unui program nu ar trebui să dezvăluie detaliile interne ale implementărilor lor respective. Pentru a vă înțelege mai bine conceptul de încapsulare, consultați documentul nostru articol despre încapsulare.

Eroare la verificare

Implementarea noastră a clasei Car nu este robustă, deoarece este posibil să se blocheze sau să funcționeze defectuos în funcție de intrarea pe care o primește de la programator.

În primul rând, rețineți că nu verificăm tipurile de parametri ai speeding_ticket și metodele make_payment și nici nu verificăm tipurile oricăruia dintre parametrii constructorului. Acest lucru ar putea duce la blocarea programului dacă utilizatorul oferă un argument care nu era de așteptat. De exemplu, dacă utilizatorul efectuează un apel, cum ar fi speeding_ticket („chips-uri ahoy”), programul se va prăbuși deoarece tipul la care se aștepta metoda era un număr întreg și nu un șir.

Acum înțelegeți noțiunile de bază ale clasei Python

În acest articol, vi s-a prezentat conceptul de clasă Python și obiect de clasă Python. De asemenea, vi s-au prezentat ideile pe care este construită o clasă python, cum ar fi: încapsulare, identificatorul „auto”, metode de acces și metode mutatoare.

Cu aceste informații, ar trebui să puteți crea singuri o clasă Python simplă și să o testați :)

E-mail
WhatsApp impune autentificarea biometrică pentru accesul la desktop și web

Acum, va trebui să vă verificați identitatea prin intermediul dispozitivului mobil pentru a vă conecta contul pe desktop și aplicația web.

Subiecte asemănătoare
  • Programare
  • Piton
Despre autor
David Sasu (1 articole publicate)Mai multe de la David Sasu

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletterului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Încă un pas…!

Vă rugăm să confirmați adresa de e-mail în e-mailul pe care tocmai vi l-am trimis.

.