1. Learn
  2. /
  3. Cursuri
  4. /
  5. Programare orientată pe obiecte în Python

Connected

Exercițiu

Supraîncărcarea egalității

Când compari două obiecte ale unei clase personalizate folosind ==, Python compară implicit doar referințele obiectelor, nu datele conținute în acestea. Pentru a modifica acest comportament, clasa poate implementa metoda specială __eq__(), care acceptă două argumente -- obiectele de comparat -- și returnează True sau False. Această metodă va fi apelată implicit atunci când două obiecte sunt comparate.

Clasa BankAccount din capitolul anterior este disponibilă în panoul de cod. Are un atribut, balance, și o metodă withdraw(). Două conturi bancare cu același sold nu sunt neapărat același cont, dar un cont bancar are de obicei un număr de cont, iar două conturi cu același număr de cont ar trebui considerate identice.

Instrucțiuni

100 XP

Încearcă să selectezi codul din liniile 1-7 și să apeși butonul „Run code". Apoi creează câteva obiecte BankAccount în consolă și compară-le.

  • Modifică metoda __init__() pentru a accepta un nou parametru - number - și inițializează un nou atribut number.
  • Definește o metodă __eq__() care returnează True dacă atributul number al celor două obiecte este egal.
  • Examinează instrucțiunile print și rezultatele din consolă.