Klasser i Python


Nyckelord: Klasser, Objekt

Klasser i Python innehåller dels egenskaper (variabler och attribut) som ett objekt ska ha, dels metoder/funktioner som beskriver vad objektet ska kunna göra. En klass fungerar som en mall som kan användas för att bygga upp flera olika objekt av samma typ.

Vad är klasser i Python?

I Python är en klass en mall som definierar hur ett objekt ska se ut och bete sig. Den består av attribut (vilka är variabler som tillhör klassen) och metoder (som är funktioner inom klassen). Genom att använda klasser kan du skapa strukturerade och återanvändbara kodblock, vilket är en central aspekt av objektorienterad programmering.

Klasser i Python i korthet:

  • Mall för objekt: En klass i Python fungerar som en mall för att skapa objekt.
  • Innehåller attribut: Består av attribut, som är variabler tillhörande klassen.
  • Innehåller metoder: Innehåller metoder, vilka är funktioner inom klassen.
  • Grund för objektorienterad programmering: Central för att skapa strukturerad och återanvändbar kod.

Hur fungerar en klass i Python?

Tänk dig ett objekt av en viss sort, exempelvis en bil. Det finns ju ofantligt många olika typer av bilar i världen, men vi kan vara överens om att en bil har fyra hjul, en ratt och kan köra framåt. Det är det som definierar en bil. Bilen kan såklart se ut på massor av olika sätt och ha många olika funktioner, men ha hjul, ratt och kunna köra är det som definierar den. Man kan säga att det är en mall för hur bilar ser ut och fungerar. I programmering kallas en sådan mall för klass. Det är klassen som bestämmer vilka olika egenskaper och funktioner objektet vi vill programmera ska ha.

Syntax – Hur skapar man en klass i Python?

En klass i Python definieras med nyckelordet class, följt av klassens namn och en kolon. Inom klassen definieras sedan dess attribut och metoder.

Vi skapar en klass med föjande syntax:

class klassnamn:
    def __init__(self, parameter1, parameter2, ... ): 
       operation/operationer

    def funktion1(self, parameter1, parameter2, ... ):
        operation/operationer

    def funktion2(self, parameter1, parameter2, ... ):
        operation/operationer

Först anropas det reserverade ordet class följt av klassnamnet. Alla klasser behöver en __init__ funktion, en så kallad konstruktor (mer om konstruktorn i senare avsnitt). Här kan man specificera vilka inparametrar och egenskaper man vill att  objektet ska få (mer om objekt på nästa sida). Slutligen speciferar vi alla funktioner som klassen ska ha. Behöver du en repetition på funktioner, så finns mer att läsa i kapitlet om funktioner.

Exempel: Hur skapar man en klass i Python?

Vi ska nu programmera en bil. Först vill vi bestämma vilka egenskaper som klassen “bil” ska ha. Vi bestämmer oss för att vår bil ska ha följande egenskaper:

  • Bilmärke
  • Årsmodell
  • Färg

Vi bestämmer sedan vilka funktioner vår bil ska ha, det vill säga vad vår bil ska kunna göra.

  • Köra
  • Tuta
  • Bromsa

Nedanför ser du hur egenskaperna och funktionerna skapas i Python:

class Car:

    def __init__(self, brand, year, color):
        self.brand = brand
        self.year = year
        self.color = color

    def drive(self):
        print(self.brand + ": Kör framåt")   

    def honk(self):
        print(self.brand + ": Tut tut!")

    def breaking(self):
        print(self.brand + ": Bromsar...")

Vi har nu skapat en klass (en mall), på hur en bil är. Vi kan med denna klass skapa objekt, en så kallad instans av klassen. Kanske vill vi programmera ett program med 100-tals bilar (100 objekt av klassen bil)? Vi behöver fortfarande bara en klass, eftersom mallen kommer vara lika dan för alla bilar. Mer om hur du skapar ett objekt från klassen i nästa avsnitt!

Vanliga frågor och svar: Klasser i Python

Vad är en klass i Python?

En klass är en mall för att skapa objekt, som definierar specifika attribut och metoder för dessa objekt.

Hur skapar man en klass i Python?

En klass skapar man med nyckelordet class, följt av klassens namn och en kolon. Inuti klassen definierar man attribut och metoder.

Vad är skillnaden mellan en klass och ett objekt?

En klass är en mall för att skapa objekt, medan ett objekt är en instans av en klass.

Hur skapar man ett objekt från en klass?

Ett objekt skapas genom att anropa klassen som om den vore en funktion, t.ex. mitt_objekt = MinKlass().

To top