Vad är objektorienterad programmering?
Objektorienterad programmering (OOP) är en programmeringsstil där man modellerar sin kod efter verkliga objekt. Istället för att ha en lång rad funktioner och variabler som hanterar olika saker, skapar man klasser som representerar begrepp (t.ex. en bil, en användare eller ett djur). Dessa klasser innehåller data (attribut) och funktioner (metoder) som hör till just det objektet.
Nyckelbegrepp
| Begrepp | Förklaring |
|---|---|
| Klass | En mall för att skapa objekt. Innehåller attribut och metoder. |
| Objekt | En instans (kopiering) av en klass. |
| Attribut | Variabler som hör till objektet. |
| Metod | Funktioner som hör till objektet. |
__init__ | En speciell metod som körs när objektet skapas (kallas ”konstruktorn”). |
self | Referens till det aktuella objektet (måste alltid vara första argumentet i metoder). |
Exempel: En enkel klass i Python
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
print(f"{self.name} säger voff!")
# Skapa objekt
my_dog = Dog("Fido", 3)
# Använd metoder och attribut
print(my_dog.name) # Skriver ut: Fido
print(my_dog.age) # Skriver ut: 3
my_dog.bark() # Skriver ut: Fido säger voff!Formatsträngar med f (f-strings)
Innan vi går vidare med fler exempel på klasser och objekt, är det viktigt att känna till ett smartare sätt att skriva ut text och variabler i Python: f-strängar (formatsträngar). Det används ofta i objektorienterad programmering för att skriva ut objektdata snyggt och tydligt.
Exempel:
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
student1 = Student("Ali", 17)
print(f"{student1.name} är {student1.age} år gammal.")Vad är en f-sträng?
- En f-sträng är en sträng som börjar med bokstaven
f. - Inuti
{}kan du skriva Python-kod, t.ex. variabler, uträkningar, metodanrop.
Jämförelse:
# Med kommatecken (användes tidigare)
print(student1.name, "är", student1.age, "år gammal.")
# Med plustecken
print(student1.name + " är " + str(student1.age) + " år gammal.")
# Med f-sträng
print(f"{student1.name} är {student1.age} år gammal.")Fördelar med f-strängar:
- Tydligare och lättare att läsa.
- Fungerar med alla typer av variabler och uttryck.
- Perfekt vid utskrifter av objekt i OOP.
Varför OOP?
Objektorienterad programmering gör det enklare att:
- strukturera kod i större projekt
- återanvänd kod (t.ex. genom arv)
- hålla ordning på tillstånd (variabler) för olika delar av programmet
- jobba med modellering som liknar verkligheten