1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Object-Oriented Programming in Python

Connected

cvičení

Přetížení operátoru rovnosti

Při porovnávání dvou objektů vlastní třídy pomocí == Python ve výchozím nastavení porovnává pouze reference na objekty, nikoli data v nich uložená. Toto chování lze změnit tak, že třída implementuje speciální metodu __eq__(), která přijímá dva argumenty – porovnávané objekty – a vrací True nebo False. Tato metoda se zavolá automaticky při porovnání dvou objektů.

V editoru je k dispozici třída BankAccount z předchozí kapitoly. Má jeden atribut balance a metodu withdraw(). Dva bankovní účty se stejným zůstatkem nemusí být nutně stejný účet – účet ale obvykle má číslo, a dva účty se stejným číslem by měly být považovány za totožné.

Pokyny

100 XP

Zkus označit kód na řádcích 1–7 a stisknout tlačítko "Run code". Poté vytvoř v konzoli několik objektů BankAccount a porovnej je.

  • Uprav metodu __init__() tak, aby přijímala nový parametr number, a inicializuj nový atribut number.
  • Definuj metodu __eq__(), která vrátí True, pokud se atribut number dvou objektů shoduje.
  • Prohlédni si příkazy print a výstup v konzoli.