class Attraksjon: def __init__(self, navn, barn, fra, til): self._navn = navn self._egnetForBarn = barn self._sesongstart = fra self._sesongslutt = til def skrivAttr(self): print("navn: " + self._navn) print("Egnet for barn: " + self._egnetForBarn) print("Sesongstart: " + self._sesongstart) print("Sesongslutt: " + self._sesongslutt) def forBarn(self): return self._egnetForBarn def aapenIPeriode(self, fra, til): if fra >= self._sesongstart and fra <= self._sesongslutt or til >= self._sesongstart and til <= self._sesongslutt: return True return False class Destinasjon: def __init__(self, navn, attraksjoner): self._navn = navn self._attraksjoner = attraksjoner def hentDestNavn(self): return self._navn def skrivDest(self): print(self.hentDestNavn()) for attr in self._attraksjoner: print(attr) """ Dette vil printe kunne laget en __str__ eller __repr__ i attraksjons-klassen for penere print.""" def leggTilAttr(self, nyAttr): self._attraksjoner.append(nyAttr) def antallAktuelleAttr(self, barn, fraDato, tilDato): antallAktuelle = 0 for attraksjon in self._attraksjoner: if barn == True: if attraksjon.forBarn() and attraksjon.aapenIPeriode(fraDato, tilDato): antallAktuelle += 1 else: if attraksjon.aapenIPeriode(fraDato, tilDato): antallAktuelle += 1 return antallAktuelle class Katalog: def __init__(): ... ... def skrivDestList(self): for key in self._destKatalog: print(key) def skrivEnDest(self, destNavn): dest = self._destKatalog[destNavn] dest.skrivDest() def nyAttr(self, destNavn, attrNavn, bVennlig, apenFra, apenTil): dest = self._destKatalog[destNavn] if dest == None: return attr = Attraksjon(attrNavn, bVennlig, apenFra, apenTil) dest.leggTilAttr(attr) def nyDestFraFil(self, destNavn, filnavn): dest = self._destKatalog[destNavn] if dest == None: dest = Destinasjon(destNavn, []) fil = open(filnavn, 'r') attributter = [] for linje in fil: attributter.append(linje.strip()) if len(attributter) == 4: if attributter[1] == "BARN": attributter[1] = True else: attributter[1] = False attr = Attraksjon(attributter*) dest.leggTilAttr(atrr) attributter = [] def finnBesteDest(self, barn, fra, til): beste_dest = None flest_attraksjoner = 0 for dest_Navn in self._destKatalog: dest = self._destKatalog[dest_Navn] antall = dest.antallAktuelleAttr(barn, fra, til) if antall > flest_attraksjoner: flest_attraksjoner = antall beste_dest = dest_Navn return beste_dest