Alle filene vi brukte finner du i denne mappa.
Vi starta med fylker_og_kommuner_04.py.
- Land er hovedobjektet som inneholder ei ordbok med fylker (fylkesobjekter)
- Et fylkesobjekt inneholder ei liste med kommuner (objekter)
- I klassen Kommune er konstruktøren forenkla slik at kun kommunenavn og fylkesnavn må oppgis når kommuneobjekter opprettes. (I tidligere versjoner måtte argumentet være ei liste med 6 tekststrenger med info om kommunen).
I klassen Kommune defineres en 'magisk metode' (__str__) som definerer hva som skrives ut hvis et kommuneobjekt gis som argument til print()-funksjonen.
Til sist i versjon 4 leser vi inn mer kommuneinfo fra fil og tester at vi har kommunene fra denne filen i strukturen fra før.
I fylker_og_kommuner_05.py defineres en funksjon (fra_str_til_tall) som henter ut en tallverdi fra en streng med siffer, blanke og desimalkomma. Denne blir brukt når vi i hovedprogrammet legger mer informasjon om kommunene (fra filen mer_kommuneinfo.txt) inn i kommuneobjektene. __str__-metoden i Kommune utvides tilsvarende.
I fylker_og_kommuner_06.py utvides fylkesobjekter til å også inneholde info om gammelt fylkesnavn og -nummer før fylkesoppsplittinga 1. januar 2024. I tildligere versjoner er det dobbeltlagring av fylkesnummer og -navn i både fylkes- og kommuneobjekter. I versjon 6 fjernes fylkesnummer og -navn fra kommuneobjektet. Denne infoen erstattes av at instansvariabelen self._fylke får en referanse/peker til fylkesobjektet som inneholder denne infoen i stedet. __str__-metoden i Kommune utvides.
I siste versjon, fylker_og_kommuner_07.py flyttes opprettelse av kommuneobjekter fra hovedprogramet til metoden legg_til_kommune i fylkesobjektene. Legg merke til hvordan self brukes som argument ved opprettelsen av et kommuneobjekt. self refererer til det fylkesobjektet medtoden kalles i/fra.
Det vil være god eksamenstrening å utvide/endre programmet ved f.eks.
- definere 'magiske metoder' i fylker og kommuner for å bestemme likhet og ulikhet
- finne hvilken kommune som har flest innbyggere
- finne hvilket fylke som har flest innbyggere
- det samme for minst/størst areal
- antall kommuner som har administrasjonssted med samme navn som kommunen
- skrive ut kommuner med samme navn (hvis noen?)
- utvide eksempelet med flere land som også er delt inn i regioner/fylker og kommuner/distrikter
- ...