Nyckelord: klasser, objekt
Getters och setters används här som en övning. I vanlig Python-kod kan enkla attribut ofta användas direkt; property är ett alternativ om åtkomst behöver kontrolleras.

Nu är det dags att skapa vår första klass. Vi ska skapa en modell av en bil och lägga in typiska egenskaper för den. Vi kommer sedan kunna skapa olika versioner av klassen, så kallade objekt.
A: Skapa en klass
Börja med att skapa en ny klass med namn Car.
Ledtråd
I Python skapar man en klass med nyckelordet class. Exempelvis:
class Bike:
pass
B: Skapa konstruktorn
Skapa konstruktorn för klassen Car. Skapa sedan instansattributna brand, color samt year. Konstruktorn ska ta in värdena till alla instansattribut och tilldela dessa värdena till motsvarande attribut.
Ledtråd
Man skapar konstruktorn med __init__(). I funktionshandtaget anger du de parametrar du vill skicka in när du instansierar objektet. Exempelvis:
class Bike:
def __init__(self, color):
self.color = color
Man anger alltid self när man skapar en klass i Python vilket är en referens till själva instansen (objektet). I detta fall skapar vi en ny instansattribut color och tilldelar denna instansattribut ett värde (color).
C: Skapa getters och setters
Skapa en getter och en setter för varje instansattribut. En getter returnerar värdet på instansattributn och settern tilldelar ett värde till instansattributn.
Ledtråd
# Getter
def get_color(self):
return self.color
# Setter
def set_color(self, color):
self.color = color
Exempel på en getter och setter i Python.
D: Instansiera objekt
Testa nu att skapa två olika instanser (objekt) av klassen Car. Använd dessa värden:
Bil 1
Brand: Volvo
Color: Blue
Year: 2022
Bil 2
Brand: Ford
Color: White
Year: 2018
Ledtråd
Skapa en ny instans av klassen genom att anropa konstruktorn för klassen. Glöm inte ange inparametrarna. Exempelvis:
car = Car(brand, year, color)
E: Skriv ut värdena från de olika objekten
Testa skriva ut några av attributen från de två olika objekten. Använd dina get-funktioner för att hämta värdet från instansen.
Ledtråd
Anropa dina getters från objektet. Exempelvis:
car.get_brand()
Svar
Exempel på hur man kan lösa uppgiften visas nedan:
class Car:
def __init__(self, brand, year, color):
self.brand = brand
self.year = year
self.color = color
# Getters
def get_brand(self):
return self.brand
def get_year(self):
return self.year
def get_color(self):
return self.color
# Setters
def set_brand(self, brand):
self.brand = brand
def set_year(self, year):
self.year = year
def set_color(self, color):
self.color = color
# Koden börjar här
if __name__ == '__main__':
car = Car("Volvo", 2022, "Blue")
car2 = Car("Ford", 2018, "White")
print(car.get_brand())
print(car2.get_color())
Här skapar vi två instanser av klassen, även kallade objekt. Vi döper objekten till car samt car2. Till konstruktorn anger vi de attribut som efterfrågades (Volvo, 2022. Blue) etc. Till sist anropar vi get-funktionena genom varje objekt. Utskriften i detta fall blir därför:
Volvo
White