Bekijk de opnderstaande klasse $$\verb!Datum!$$. Deze klasse bevat de methode $$\verb!__str__()!!$$ die het mogelijk maakt een datum in een welbepaald formaat af te drukken, namelijk $$\verb!dag/maand/jaar!$$, waarbij de maand numeriek weergegeven wordt. Het is de bedoeling om in deze oefening twee nieuwe klassen te definiƫren die overeren van de klasse $$\verb!Datum!$$, waarbij verschillende afdrukformaten gedefinieerd worden, namelijk:
class Datum(object): aantal_dagen = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] min_jaar = 1900 @staticmethod def _is_geldig(dag, maand, jaar): if maand > 0 and maand < 13 and jaar > Datum.min_jaar : return dag > 0 and dag <= Datum.aantal_dagen[maand - 1] else: return False def __init__(self, dag, maand, jaar): if Datum._is_geldig(dag, maand, jaar): self._dag = dag self._maand = maand self._jaar = jaar else: self._dag = 0 self._maand = 0 self._jaar = 0 def get_dag(self): return self._dag def get_maand(self): return self._maand def get_jaar(self): return self._jaar def __str__(self): return str(self._dag) + '/' + str(self._maand) + '/' + str(self._jaar)
d_standaard = Datum(1, 12, 2016) d_engels = EngDatum(1, 12, 2016) d_nederlands = NedDatum(1, 12, 2016) print(d_standaard) -> 1/12/2016 print(d_engels) -> December 1, 2016 print(d_nederlands) -> 1 december 2016