Objekt i Python


Nyckelord: Klasser, Objekt

Objekt i Python innehåller informationen som beskriver egenskaperna och funktionerna från en klass. Man kan ha flera objekt från samma klass, där varje objekt är unikt! 

Vad är ett Objekt i Python?

Ett objekt i Python kan vara precis vad som helst. Ett objekt innehåller information om objektets tillstånd (exempelvis färg och årsmodell på en bil). Objekt innehåller även information om hur objektet beter sig för sina olika funktioner (exempelvis köra framåt eller svänga för en bil). Man brukar säga att ett objekt är en instans av en klass. Egenskaperna som ska definieras när man skapar ett objekt kallas därför naturligt för instansvariabler. Om du inte har läst vårt avsnitt om klasser i Python så rekommenderar vi att du gör det först, innan du fortsätter läsa denna artikel.

Objekt i korthet

  • Ett objekt är en instans av en klass i Python.
  • Objekt har unika identiteter, typer och värden.
  • De innehåller data i form av attribut och funktioner i form av metoder.
  • Objekt skapas genom att anropa en klass.

Exempel: Varför objekt?

I föregående avsnitt skapade vi klassen Car enligt:

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...")

Detta är alltså mallen det vill säga vilka egenskaper som objektet ska ha. I detta fall har klassen Car ett bilmärke (brand), årsmodell (year), samt en färg (color). Klassen har även tre funktioner, köra (drive), tuta (honk) och bromsa (breaking). Ofta vill man programmera flera objekt av samma klass i ett program. Säg att vi vill programmera ett program med 100 bilar. Det vore ju väldigt jobbigt om vi var tvungna att programmera 100 klasser som beskriver samma sak. Tack vare att vi skapat en mall (klassen Car), kan vi använda samma klass för att skapa flera olika objekt.

Vi ska visa detta genom att programmera två stycken bilar. Bilarna kommer alltså skapas från samma klass, men ha olika egenskaper.

Exempel: Hur skapar man ett objekt i Python?

Vi ska nu programmera två stycken bilar. Vi bestämmer att bilarna ska ha följande egenskaper:

Bil 1:
Märke: Volvo
Ålder: 2018
Färg: Vit

Bil 2:
Namn: BMW
Ålder: 2005
Färg: Svart

Som du ser så skiljer sig de två bilarna åt, men vi kan trots det använda samma klass för att skapa objekten (de har ju alla samma egenskaper (instansvariabler)!

Vi skapar nya objekt enkelt genom att anropa klassen, exempelvis:

volvo = Car("Volvo", 2018, "Vit")
bmw = Car("BMW", 2005, "Black")

Nu kan vi anropa funktionerna i varje objekt, helt oberoende av varandra!

volvo.drive()
bmw.breaking()

Utskriften blir då:

Volvo: Kör framåt
BMW: Bromsar...

Man kan även anropa egenskaperna hos en bil, exempelvis:

print(volvo.year)
print(bmw.color)

Vilket ger utskriften:

2018
Black

Som du ser, har vi två olika objekt med samma egenskaper. Objekten är helt oberoende av varandra vilket innebär att ena bilen kan bromsa medans den andra kör framåt!

Vanliga frågor och svar: Objekt i Python

Vad är ett objekt i Python?

Ett objekt i Python är en instans av en klass. Det är en datastruktur som innehåller både data (i form av attribut) och kod (i form av metoder).

Hur skapas ett objekt i Python?

Ett objekt skapas genom att anropa en klass. Detta kallas för instansiering. När en klass anropas, körs dess __init__ metod för att initialisera objektet.

Vad är skillnaden mellan en klass och ett objekt i Python?

En klass är en mall för att skapa objekt och definierar attribut och beteenden som dess instanser (objekt) kommer att ha. Ett objekt är en instans av en klass.

Kan ett objekt i Python ändra sin klass?

Nej, ett objekt kan inte ändra sin klass efter att det har skapats. Klassens typ är fast för objektet under hela dess livstid.

Hur kan jag se vilken klass ett objekt tillhör?

Du kan använda type() funktionen för att få reda på vilken klass ett objekt tillhör.

Vad är self i Python?

self är en referens till det aktuella objektet och används för att komma åt attribut och metoder i klassen.

Kan ett objekt i Python ha flera instanser av samma klass?

Ja, du kan skapa flera instanser (objekt) av samma klass, och varje instans är ett unikt objekt.

To top