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:

Lage egne klasser i Python

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__.

Lage klasser i Python

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:

Lage egne klasser i Python

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:

Lage egne klasser i Python

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:

Lage egne klasser i Python

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:

Lage egne klasser i Python

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

Opprette egne klasser i Python

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:

Lag egne klasser i Python

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.