Nyckelord: Klasser, Objekt, Konstruktor

När du anropar en klass skapas normalt en ny instans. Metoden __init__ initialiserar den med de attribut och startvärden som du vill ha. Den kallas ofta konstruktor i introduktioner, men själva skapandet hanteras av __new__.
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, parameter1, parameter2): följs av ett indenterat kodblock i klassdefinitionen.
Du definierar __init__(self, ...) inuti klassen. Den anropas efter att objektet skapats. Parametern self refererar till instansen, så att du kan tilldela dess attribut.
Konstruktorn i korthet
- Konstruktorn använder man för att initialisera nya objekt vid instansiering av en klass.
__init__initialiserar objektet;__new__skapar det.selfär den första parametern i__init__och refererar till objektinstansen.- Konstruktorn kan ta flera parametrar för att anpassa objektets initialisering.
- Instansattribut definieras och får ofta sina startvärden i __init__.
__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
def drive(self):
print(self.brand + ": Kör framåt")
def brake(self):
print(self.brand + ": Bromsar...")
__init__ anropas för att initialisera den nya instansen. Med self kan vi ge objekten olika attributvärden.
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.brake()
Volvo: Kör framåt
BMW: Bromsar...
__init__ är också en metod. Den har en särskild roll när en instans skapas och ska returnera None, vanligtvis genom att inte skriva något return-uttryck.
Vanliga frågor och svar: Konstruktorn 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.
Det är inte nödvändigt för varje klass att ha en konstruktor. Om man inte definierar konstruktorn, använder Python en standardkonstruktor.
Du definierar __init__(self, ...) inuti klassen. Den anropas efter att objektet skapats. Parametern self refererar till instansen, så att du kan tilldela dess attribut.
self i en konstruktor? En vanlig instansmetod får instansen som första argument automatiskt. Saknas en motsvarande parameter i definitionen blir anropet felaktigt. Namnet self är en konvention, inte ett reserverat ord.