Izpis kart v roki igralca

Za izpis kart, ki jih v roki drži igralec, lahko uporabimo metodo __str__, ki je podedovana iz razreda Komplet. Na primer:

>>> igralec = Igralec("France")
>>> komplet = Komplet()
>>> komplet.premesaj()
>>> komplet.deli([igralec], 5)
>>> print(igralec)
Igralec France ima
Pikova 2
 Pikova 3
  Pikova 4
   Srčev as
    Križeva 9

Čeprav je priročno podedovati obstoječe metode, pa objekt Igralec vsebuje dodatne informacije, ki bi jih želeli vključiti v izpis. To storimo tako, da v razred Igralec vklučimo metodo __str__, ki bo nadomestila isto imensko metodo iz razreda Komplet:

class Igralec(Komplet)

  def __str__(self):
    s = "Igralec " + str(self._ime)
    if self.je_prazen():
      s += " nima kart\n"
    else:
      s += " ima\n" + Komplet.__str__(self)
    return s

V metodi __str__ razreda Igralec najprej izpišemo informacije, povezane z danim igralcem – njegovo ime in ali v roki ima, ali nima kart. Če karte ima, potem pokličemo metodo __str__ iz starševskega razreda Komplet, ki poskrbi za izpis kart, ki jih ima igralec v roki.


Izvedi Počisti