# Vi utvider programmet med en klasse som beskriver et fylke:
class Fylke:
# En klassevariabel med ei ordbok som mapper fra fylkesnummer til fylkesnavn
# Denne variabelen er IKKE en instansvariabel og blir felles for alle
# objekter av klassen.
fylker = {'03': 'Oslo',
'11': 'Rogaland',
'15': 'M?re og Romsdal',
'18': 'Nordland',
'30': 'Viken', # oppl?st 1. januar 2024
'31': '?stfold',
'32': 'Akershus',
'33': 'Buskerud',
'34': 'Innlandet',
'38': 'Vestfold og Telemark', # oppl?st 1. januar 2024
'39': 'Vestfold',
'40': 'Telemark',
'42': 'Agder',
'46': 'Vestland',
'50': 'Tr?ndelag',
'54': 'Troms og Finnmark', # oppl?st 1. januar 2024
'55': 'Troms',
'56': 'Finnmark'}
def __init__(self, nr):
self._nummer = nr # Vi lagrer bare fylkesnummeret
def nummer(self):
return self._nummer
def navn(self):
return self.fylker[self.nummer()] # navnet hentes fra ordboka ovenfor
class Kommune:
def __init__(self, nr, nvn):
self._nummer = nr # instansvariabel for kommunenummer
self._navn = nvn # instansvariabel for kommunenavn
def nummer(self):
return self._nummer
def navn(self):
return self._navn
def fylkesnr(self):
return self.nummer()[:2] # De to f?rste tegnene i self._nummer
# Kan jo hende vi f?r bruk for disse hvis en kommune endrer
# navn eller nummer:
def sett_nummer(self, nr):
self._nummer = nr
def sett_navn(self, n):
self._navn = n
# Prosedyre for ? lage en liste av kommuneinformasjon fra fil:
def les_fil_returner_tabell(filnavn):
liste = []
fil = open(filnavn)
for linje in fil:
liste.append(linje.strip().split("\t"))
return liste
kommuneinfo = les_fil_returner_tabell("liste.txt")
# Starten av kommuneinfo (liste av lister) ser n? s?nn ut:
# [
# ['03', 'Oslo', '0301', 'Oslo', '0301'],
# ['11', 'Rogaland', '1101', 'Eigersund', '1101'],
# ['11', 'Rogaland', '1103', 'Stavanger', '1103'],
# ...
# ]
# Et kommuneobjekt skal innholde informasjon om
# kommunenummer (indeks 2) og navn (indeks 3):
kommuneliste = [] # blir ei liste med kommuneobjekter
kommuneordbok = {} # ei ordbok med kommuneobjekter
fylker = {} # ei ordbok med fylkesobjekter, fylkesnr er n?kkel
for info in kommuneinfo:
kommune = Kommune(info[2], info[3])
kommuneliste.append(kommune) # inn i liste
kommuneordbok[info[2]] = kommune # inn i ordbok
# kommunenr er n?kkel, kommuneobjekt innholdsverdi
if not (kommune.fylkesnr() in fylker):
fylker[kommune.fylkesnr()] = Fylke(kommune.fylkesnr())
fylke = fylker[kommune.fylkesnr()] # fylkesobjektet for fylket kommune ligger i
print(kommune.nummer(), kommune.navn(), kommune.fylkesnr(), fylke.navn())