from katt import Katt class Katteregister: def __init__(self): #Ferdiglaget konstrukt?r self.katter = [] def les_fra_fil(self, filnavn): fil = open(filnavn) for linje in fil: #Vi splitter p? bindestrek etter formatet til txt-filen biter = linje.split("-") navn = biter[0] alder = biter[1] #Vi spliter p? komma etter formatet til txt-filen #Denne instansvariabelen skal jo v?re en liste #S? vi trenger ikke ? gj?re noe mer her farger = biter[2].split(",") kjonn = biter[3] #Husk ? faktisk opprette objektet og legge den til i lista katt = Katt(navn, alder, farger, kjonn) self.katter.append(katt) def finn_duplikater(self): #Her lager vi en ny liste over registrerte katter #Den er tom til ? begynne med men vil bli fylt opp etter hvert registrerte = [] #Vi g?r igjennom alle katte-objektene som vi leste inn fra filen for i in range(0, len(self.katter)): #Hvis katte-objektet ikke har blitt registrert f?r if self.katter[i] not in registrerte: #Da "registrerer" vi den ved ? legge den til i lista registrerte.append(self.katter[i]) else: #Eller s? printer vi ut en melding om duplikat print("Katten p? linje", i+1, "er et duplikat") #Husk at "not in" bruker eq-metoden fra Katt-klassen #S? eq-metoden i Katt-klassen kj?res p? et katte-objekt om gangen #Mens finn_duplikater-metoden kj?res p? mange katte-objekter samtidig #Det er vanlig ? ha en klasse som inneholder objekter av en annen klasse #Da er det ogs? vanlig ? ha parallele metoder i de to klassene def vis_alle_katter(self): for katt in self.katter: print(katt) #Husk at "print(katt)" bruker str-metoden fra Katt-klassen #S? str-metoden i Katt-klassen kj?res p? et katte-objekt om gangen #Mens vis_alle_katter-metoden kj?res p? mange katte-objekter samtidig #Det er vanlig ? ha en klasse som inneholder objekter av en annen klasse #Da er det ogs? vanlig ? ha parallele metoder i de to klassene