OPPGAVETEKST: Lage en klasse Bygning. Bygningen skal ha en adresse, en huseier og en liste med leietakere som bor der nå. Det skal være metoder for at leietakere kan flytte inn og flytte ut. Huseier skal også kunne endres (ved salg av bygningen). Vi gjorde listen om til ordbok - for eksempelets skyld *** NY FIL *** class Bygning: def __init__(self, adr, eier, max_ant): self._adresse = adr self._huseier = eier self._maxantall = max_ant self._leietakere = {} def flyttInn(self, person): if len(self._leietakere) < self._maxantall: self._leietakere[person.hentNavn()] = person #navnet til Person-objektet er nøkkel, Person-objektet er innholdsverdi return "Flyttet inn: " + str(person) return "Det er fullt. Får ikke lagt til: " + str(person) def flyttUt(self, person): if len(self._leietakere) <= 0: return ("Det er ingen som bor her.") for folk in self._leietakere: if self._leietakere[folk] == person: # self._leietakere.pop(person.hentNavn()) return ("Flyttet ut: " + str(person)) def settNyEier(self, ny_eier): self._eier = ny_eier def sjekkLeietakere(self): print("Bor her: ") for person in self._leietakere: print(person) #Hente metoder kan være kjekt å ha def hentAdr(self): return self._adresse def hentAntall(self): return self._antall def hentLeietakere(self): return self._leietakere def hentEier(self): return self._huseier **** NY FIL **** class Person: def __init__(self, navn, alder): self._alder = alder self._navn = navn def hentNavn(self): return self._navn def hentAlder(self): return self._alder def __str__(self): #denne metoden gir oss en ønsket utskrift av Person-objekter return "Navn: " + self._navn *** NY FIL ***** from bygning import Bygning from person import Person def hovedprogram(): eier = Person("Hans Hansen", 51) #eier er en referanse til et Person-objekt bygning = Bygning("Schleppegrells gate 32", eier, 2) meg = Person("Guro", 22) #meg er en referanse til et Person-objekt minsoster = Person("Anne", 19) print(meg) #printer Navn: Guro bygning.flyttInn(meg) bygning.flyttInn(minsoster) print(bygning.flyttInn(eier)) print(bygning.flyttUt(minsoster)) print(bygning.hentLeietakere()) bygning.sjekkLeietakere() hovedprogram()