Ett objekt skapas utifrån en klass. En klass är en mall utifrån vilken man kan skapa nya objekt.
När man har skapat ett objekt kallas det en instans av klassen.
Vad är skillnaden?
Låt oss kika..
Enklast möjliga...
class Vehicle:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
v = Vehicle("Nissan", "Datsun", 1997)
I det här fallet blir v en Nissan Datsun med årsmodell 1997
Att skapa ett objekt som är en instans av klassen kallas att instantiera en klass
v.make
'Nissan'
v.model
'Datsun'
v.year
1997
Det reserverade ordet self används för att referera nuvarande instans av klassen.
class Vehicle:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self måste alltid användas som första parameter i __init__ samt till klassens andra attribut och metoder
class Person():
def __init__(self, first_name, last_name):
self.first_name = first_name
self.last_name = last_name
def full_name(self):
return f"My name is {self.first_name} {self.last_name}"
def likes(self, thing):
return f"{self.first_name} likes {thing}!"
p = Person("Sandra", "Larsson")
p.full_name()
Sandra Larsson
p.likes("Icecream")
Sandra likes Icecream!
Self skickas med som parameter till instansmetoderna - representerar nuvarande instans av klassen. Används för få access till attributen och metoderna till klassen!