Flera objekt – var sitt minne

När du skapar flera objekt från en klass skapas separata instanser, alltså unika kopior av klassen med sin egen data. Det betyder att ändringar på ett objekt inte påverkar de andra.

Exempel: Flera objekt av samma klass

class Dog:
    def __init__(self, name, age):
        self.name = name
        self.age = age

dog1 = Dog("Rex", 3)
dog2 = Dog("Bella", 5)

print(f"{dog1.name} är {dog1.age} år")
print(f"{dog2.name} är {dog2.age} år")
  • Vi skapar två olika objekt: dog1 och dog2.
  • Båda har egna värden för name och age.
  • Även om de kommer från samma klass (Dog), så har de var sin uppsättning data.

Ändringar på ett objekt påverkar inte andra

dog1.age += 1
print(f"{dog1.name} är nu {dog1.age} år")
print(f"{dog2.name} är fortfarande {dog2.age} år")

Ändringen på dog1 påverkar inte dog2 – de är helt oberoende!

Hur funkar det bakom kulisserna?

Varje gång du skriver:

obj = Klassnamn(värden)

då:

  1. Python skapar ett nytt objekt i minnet
  2. Kör __init__() för att ge objektet sina värden
  3. Lagrar data i objektets egna instansvariabler

Du kan alltså ha hundratals objekt med olika data från samma klass, till exempel om du bygger ett spel med många karaktärer, fordon, användare etc.

Sammanfattning

KonceptFörklaring
Flera objektVarje gång du skapar ett nytt objekt skapas en egen instans av klassen.
Egna instansvariablerAlla objekt har sina egna värden – de delar inte data med varandra.
Oberoende dataÄndringar på ett objekt påverkar inte andra objekt.