Konstruktorn i Python


Nyckelord: Klasser, Objekt, Konstruktor

Konstruktorn i Python använder man för att skapa objekt från en klass. Det är här man ger objektet de värden (instansvariabler) som man önskar att objektet ska ha. 

Hur fungerar en Konstruktor i Python?

När man vill skapa ett objekt så anropar man konstruktorn. Man säger att man instansierar ett objekt.

Syntaxen för en konstruktor är:

def __init__(self, inparameter1, inparameter2, osv):
    operation / operationer

Man definierar en konstruktor med __init__(self). Detta anger att när klassen anropas, ska ett nytt objekt skapas. Det är tack vare self, som vi kan komma åt värdena som vi skapar i objekten.

Konstruktorn i korthet

  • Konstruktorn använder man för att initialisera nya objekt vid instansiering av en klass.
  • I Python heter konstruktorn __init__.
  • self är den första parametern i __init__ och refererar till objektinstansen.
  • Konstruktorn kan ta flera parametrar för att anpassa objektets initialisering.
  • Instansvariabler blir definieras och initialiseras i konstruktorn.
  • __init__ anropas automatiskt när en ny instans av en klass skapas.
  • Konstruktorn returnerar inte ett värde.
  • Konstruktorn är en del av klassdefinitionen.

Exempel: Konstruktor i Python

Vi såg ett exempel på en konstruktor i de två föregående avsnitten klasser och objekt när vi programmerade en klassen Car:

class Car:

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

__init__ anger att ett nytt objekt ska skapas när klassen kallas på. Det är detta som gör att vi kan skapa flera objekt från samma klass. Med self, kan vi ge unika värden till varje objekt. Vi skapade två bilar i föregående avsnitt:

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

När vi skapar ett nytt objekt genom att anropa klassen, anropas __init__ funktionen. Med self, sparar vi undan våra inparametrar i objektet. Fastän vi har skapat båda objekten från samma klass, får vi olika beteenden:

volvo.drive()
bmw.breaking()

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

Observera skillnaden mellan konstruktorer och funktioner. Konstruktorer använder man för att skapa objekt och funktioner använder man för att utföra operationer.

Vanliga frågor och svar: Konstruktorn i Python

Vad är en konstruktor i Python?

En konstruktor är en speciell metod (__init__) som automatiskt körs vid skapandet av ett nytt objekt från en klass för att initialisera objektets attribut.

Måste varje klass i Python ha en konstruktor?

Det är inte nödvändigt för varje klass att ha en konstruktor. Om man inte definierar konstruktorn, använder Python en standardkonstruktor.

Hur definierar man en konstruktor i Python?

Man definierar en konstruktor genom att lägga till metoden __init__ i klassdefinitionen, med self som den första parametern.

Vad händer om man inte inkluderar self i en konstruktor?

Utelämnandet av self i en konstruktor leder till ett fel, eftersom metoden inte kan referera till objektinstansen.

To top