Programmering med Python åpner for mange muligheter som går utover enkle skript. En sentral komponent i objektorientert programmering er arbeidet med klasser. De danner grunnlaget for objekter og gjør det mulig å opprette og administrere komplekse datastrukturer. I denne guiden vil du lære hvordan du definerer egne klasser i Python for å bruke deres egenskaper og metoder effektivt.
Viktige funn
- Klasser er nøkkelen til objektorientert programmering i Python.
- En initialiserer (konstruktør) gjør det mulig å definere spesifikke egenskaper når du oppretter en klasse.
- Metoder i klasser lar deg kapsle inn funksjoner som arbeider på egenskapene til et objekt.
- Tilgang til egenskaper skjer via punktoperatoren.
Trinn-for-trinn-guide
La oss starte med grunnleggende om klasseopprettelse i Python. Først må du definere en ny klasse med nøkkelordet class. Du kan gjøre dette i Python-koden din som følger:

Her har vi en tom klasse kalt Ansatt. Du kan først definere den uten parametere, noe som betyr at klassen opprettes uten spesifikk initialisering. Detta er et viktig grunnlag for å sikre at du ikke får feil når du senere oppretter objekter.
Nå oppretter du et objekt av denne klassen. Det er nok å bruke klassenavnet og sette en tom parentes:
I dette tilfellet har vi et objekt Ansatt som vi nettopp har opprettet. Neste steg er å utvide klassen med egenskaper. For eksempel kan du legge til et navn til klassen Ansatt.
Først må du definere en initialiserer som fungerer som konstruktør for klassen din. Dette skjer gjennom metoden __init__.

Her ser du hvordan en __init__-konstruktør defineres. Vi overfører navnet som parameter og bruker self for å lagre navnet for det aktuelle objektet.
Nå som du har en egenskap, kan du overføre et navn direkte når du oppretter et objekt:

Når du nå oppretter objektet deltaker med navnet "Jan", blir navnet lagret i instansen. Gjennom autokomplettering kan du sjekke om navnet er korrekt satt.
For å bruke egenskapene kan du kalle dem ved hjelp av punktoperatoren:

Dette er punktet der du kan få tilgang til egenskapene til objektet ditt. I dette tilfellet skriver du ut navnet til deltakeren.
I tillegg til egenskaper kan du også implementere metoder. Opprettelse av en metode fungerer på samme måte som definisjonen av en funksjon:

Her definerer du metoden registrere. Legg igjen merke til at self automatisk overføres som parameter til metoden for å få tilgang til instansen. Når vi registrerer, kan vi for eksempel skrive ut en suksessmelding:

Når du kaller metoden registrere, ser det slik ut:

Her kaller du metoden på instansen deltaker, som gir tilbakemelding på registreringen.
Til slutt kan vi også overføre parametere til metoder, på samme måte som med funksjoner. For eksempel en metode avmelde, som forventer en parameter for tidlig avmelding:

Her undersøker du om deltakeren ønsker å melde seg av tidlig, og gir en tilsvarende melding.
ScreenShot_320
Dette viser deg hvor interaktive klassene dine og metodene kan bli, og hvordan de reagerer på inndata.
Til slutt bør vi oppsummere de grunnleggende prinsippene vi har lært. Definisjonen av klasser innebærer å definere attributter og metoder som er relevante for de tilknyttede objektene. Konstruktøren __init__ er sentral for å sette attributter ved opprettelsen av objektet.
Oppsummering – Opprett og bruk egne klasser i Python
Ved å forstå og anvende disse grunnleggende prinsippene kan du utvikle kraftige og fleksible programmer i Python. Du kan opprette klasser som kapsler spesifikke funksjoner og egenskaper for å gjøre programmering mer brukervennlig og effektiv.
Vanlige spørsmål
Hvordan definerer jeg en klasse i Python?Bruk nøkkelordet class, etterfulgt av klassenavnet og et kolon.
Hva er formålet med __init__-konstruktøren?Den brukes til å utføre initialiseringer når du oppretter et objekt.
Hvordan får jeg tilgang til egenskaper til et objekt?Bruk punktoperatoren, etterfulgt av egenskapsnavnet, f.eks. objekt.egenskap.
Kan jeg overføre flere parametere til en metode?Ja, du kan definere metoder som aksepterer flere parametere.
Kan jeg bruke funksjoner innenfor klassene mine?Ja, metoder er ingenting annet enn funksjoner som er bundet til en klasse.