class Forfatter: # konstrukt?r def __init__(self, navn): self._navn = navn self._publikasjonsliste = [] # instansmetode som legger en publikasjon til i publikasjonslisten def leggTilPublikasjon(self, publikasjon): self._publikasjonsliste.append(publikasjon) # instansmetode som henter navnet def hentNavn(self): return self._navn # instansmetode som henter listen med publikasjoner def hentPublikasjoner(self): return self._publikasjonsliste # instansmetode som skriver ut publikasjonene def skrivUtPublikasjoner(self): if len(self._publikasjonsliste) == 0: print("Ingen publikasjoner") else: print("Publikasjoner:") for publikasjon in self._publikasjonsliste: print(publikasjon) # instansmetode som skriver ut info om forfatteren def skrivUtInfo(self): print("Navn:", self._navn) self.skrivUtPublikasjoner() # instansmetode som sjekker om forfatteren har skrevet en # publikasjon med oppgitt tittel, metoden returnere is?fall # True, og ellers False def sjekkForfattet(self, tittel): for publikasjon in self._publikasjonsliste: if publikasjon == tittel: # kan utvide dersom flere klasser return True return False # enhetstest-metode som tester de ulike metodene i Forfatter-klassen def enhetstest(): forf1 = Forfatter("Testforfatter") assert forf1.hentNavn() == "Testforfatter" forf1.skrivUtInfo() assert len(forf1.hentPublikasjoner()) == 0 forf1.leggTilPublikasjon("bok1") assert len(forf1.hentPublikasjoner()) == 1 forf1.skrivUtInfo() forf1.leggTilPublikasjon("bok2") assert len(forf1.hentPublikasjoner()) == 2 forf1.skrivUtInfo() assert forf1.sjekkForfattet("bok1") assert forf1.sjekkForfattet("bok2") assert not forf1.sjekkForfattet("bok3") enhetstest()