class Dyrehage: def __init__(self): self._dyrene = [] def lesFraFil(self, filnavn): try: minFil = open(filnavn, "r") for linje in minFil: informasjon = linje.split(", ") navn = informasjon[0] kjonn = informasjon[1] art = informasjon[2] alder = int(informasjon[3]) self._dyrene.append(Dyr(navn, kjonn, art, alder)) minFil.close() except: print("Kunne ikke lese fra filen", filnavn) def skrivInnNy(self): print("Legge inn nytt dyr") navn = input("Oppgi navn: ") kjonn = input("Oppgi kjønn (M/K): ") art = input("Oppgi art: ") try: alder = int(input("Oppgi alder: ")) self._dyrene.append(Dyr(navn, kjonn, art, alder)) except: # kommer hit dersom brukeren tastet noe som ikke var et tall print("Ugyldig input - fikk ikke lagt til dyret") def skrivUtPaaNavn(self, navnet): for dyr in self._dyrene: if dyr.hentNavn() == navnet: print(dyr) def skrivUtAlle(self): for dyr in self._dyrene: print(dyr) class Dyr: def __init__(self, navn, kjonn, art, alder): self._navn = navn self._kjonn = kjonn self._art = art self._alder = alder def hentNavn(self): return self._navn def endreAlder(self, nyAlder): # rettet fra self._nyAlder = nyAlder til self._alder = nyAlder self._alder = nyAlder def __str__(self): # rettet fra self.art til self._art return f"{self._navn} - {self._art} - {self._alder} aar - {self._kjonn}" def enhetstestDyr(): dyret = Dyr("test1", "K", "art", 5) print(dyret) assert dyret.hentNavn() == "test1" dyret.endreAlder(6) print(dyret) # sjekke at alder er endret def enhetstestDyrehage(): dyrehagetest = Dyrehage() dyrehagetest.skrivUtAlle() # test at virker når listen er tom dyrehagetest.lesFraFil("dyrene.txt") # teste med fil som finnes dyrehagetest.lesFraFil("filSomIkkeFines.txt") # teste med fil som ikke finnes dyrehagetest.skrivUtAlle() # test at virker når listen inneholder dyr dyrehagetest.skrivUtPaaNavn("Elio") # med navn som finnes - se at skrives ut dyrehagetest.skrivUtPaaNavn("Hassel") # med navn som ikke finnes - se at det ikke skrives ut noe dyrehagetest.skrivInnNy() dyrehagetest.skrivUtAlle() # se at det nye dyret skrives ut def hovedprogram(): dyrehagen = Dyrehage() dyrehagen.lesFraFil("dyrene.txt") dyrehagen.skrivUtAlle() # kommentere ut kall på hovedprogram mens vi kjører enhetstestene #hovedprogram() # kalle på enhetstestene enhetstestDyr() enhetstestDyrehage()