1. Nauka
  2. /
  3. Kursy
  4. /
  5. Wprowadzenie do programowania obiektowego w Pythonie

Connected

ćwiczenie

Przeciążanie operatora równości

Gdy porównujesz dwa obiekty klasy niestandardowej za pomocą ==, Python domyślnie porównuje jedynie adresy w pamięci, pod którymi przechowywane są te obiekty – nie zaś dane, które zawierają. Aby zmienić to zachowanie, klasa może implementować specjalną metodę, która przyjmuje dwa argumenty (porównywane obiekty) i zwraca True lub False. Metoda ta będzie wywoływana niejawnie przy każdym porównaniu dwóch obiektów.

Klasa BankAccount z poprzedniego rozdziału jest już dostępna w pliku script.py. Ma dwa atrybuty – balance i number – oraz metodę withdraw(). Dwa konta bankowe z tym samym saldem niekoniecznie są tym samym kontem, ale każde konto bankowe zazwyczaj posiada numer konta. Dwa konta o tym samym numerze powinny być uznawane za identyczne.

Instrukcje

100 XP
  • Zmodyfikuj metodę __init__(), tak aby przyjmowała nowy argument o nazwie number, i zainicjalizuj nowy atrybut number.
  • Zdefiniuj metodę, która sprawdza, czy atrybut number dwóch obiektów jest równy.