class Hus: def __init__(self, farge): self._farge = farge self._eier = None self.neste = None # Ny instansvariabel def sett_eier(self, hvem): self._eier = hvem def hent_eier(self): return self._eier def mal(self, farge): self._farge = farge def hent_farge(self): return self._farge class Person: def __init__(self, navn): self._navn = navn def hent_navn(self): return self._navn husregister = None ola = Person("Ola") olas_hus = Hus("blå") olas_hus.sett_eier(ola) husregister = olas_hus # 1. hus kari = Person("Kari") karis_hus = Hus("rød") karis_hus.sett_eier(kari) karis_hus.neste = husregister husregister = karis_hus # Nytt 1. hus # Mer generelt kan vi bruke # de samme hjelpevariablene: navn = "Ita" person = Person(navn) farge = "gul" nytt_hus = Hus(farge) nytt_hus.sett_eier(person) nytt_hus.neste = husregister husregister = nytt_hus # lager en funksjon som oppretter hus og person og returnerer husobjekt med referanse til eieren def nytt_hus_med_eier(eiernavn, husfarge): # NB Rekkefølgen på argumentene på kallstedet må stemme overens med # parametrene. Først navn på person, så farge på hus # eiernavn er navn på huseier/person (str) # husfarge er fargen til det nye huset (str) # Oppretter et nytt personobjekt person = Person(eiernavn) # oppretter et nytt husobjekt og setter personen ovenfor til eier hus = Hus(husfarge) hus.sett_eier(person) return hus nytt_hus = nytt_hus_med_eier("Ulv", "grått") nytt_hus.neste = husregister husregister = nytt_hus # Legger til noen flere hus: nytt_hus = nytt_hus_med_eier("Ada", "oransje") nytt_hus.neste = husregister husregister = nytt_hus nytt_hus = nytt_hus_med_eier("Gard", "akvamarin") nytt_hus.neste = husregister husregister = nytt_hus hus = husregister while hus != None: print(hus.hent_eier().hent_navn(), "eier et hus med farge", hus.hent_farge()) hus = hus.neste olas_hus = karis_hus olas_hus.mal("gul") print(karis_hus.hent_farge()) olas_hus = Hus("rød") print(karis_hus.hent_farge()) print(olas_hus) print(karis_hus) hus = husregister while hus != None: print(hus.hent_eier().hent_navn(), "eier et hus med farge", hus.hent_farge()) hus = hus.neste