Magiska metoder (__str__, __repr__ med flera)
Fördjupa er i Pythons specialmetoder för att anpassa objekts beteende
Magiska metoder (__str__, __repr__ med flera) är en gratis lektion i Lär Er AI med Python på CoddyKit. Detta är lektion 6 av 6. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Lär Er AI med Python, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Lär Er AI med Python innehåller totalt 6 lektioner.
Introduktion till magiska metoder
Magiska metoder, även kallade dunder-metoder (förkortning av ”double underscore”), är specialmetoder i Python som gör det möjligt att definiera hur objekt beter sig i specifika situationer.
I den här lektionen lär du dig att använda vanliga magiska metoder som __str__, __repr__ och andra.

Vad är magiska metoder?
Magiska metoder är fördefinierade metoder i Python som anropas automatiskt när specifika operationer utförs på objekt. De identifieras av sina dubbla understreck, som __init__ eller __str__.
Metoden __init__
Metoden __init__ är en konstruktor som initierar ett nytt objekt. Den anropas automatiskt när ett objekt skapas:
# Using the __init__ method to initialize attributes
class Person:
def __init__(self, name, age):
self.name = name # Initialize the name attribute
self.age = age # Initialize the age attribute
# Creating an instance of Person
person = Person("Alice", 30)
print(person.name, person.age) # Outputs: Alice 30Metoden __str__
Metoden __str__ definierar ett objekts strängrepresentation när print() anropas:
# Defining the __str__ method
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Name: {self.name}, Age: {self.age}" # String representation
person = Person("Alice", 30)
print(person) # Outputs: Name: Alice, Age: 30Metoden __repr__
Metoden __repr__ ger en officiell strängrepresentation av ett objekt och används ofta vid felsökning:
# Defining the __repr__ method
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person('{self.name}', {self.age})" # Debug-friendly representation
person = Person("Alice", 30)
print(repr(person)) # Outputs: Person('Alice', 30)Överlagring av operatorer med magiska metoder
Du kan använda magiska metoder för att anpassa beteendet hos operatorer som + eller ==:
# Overloading the + operator with __add__
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y) # Adding two points
def __str__(self):
return f"({self.x}, {self.y})"
point1 = Point(1, 2)
point2 = Point(3, 4)
result = point1 + point2 # Calls __add__
print(result) # Outputs: (4, 6)Vanliga magiska metoder
Här är några vanliga magiska metoder:
__len__: Definierar beteendet hos funktionenlen().__getitem__: Gör det möjligt att använda indexering som med en lista eller ordlista.__eq__: Anpassar likhetsjämförelsen med hjälp av==.
Använda __len__ och __getitem__
Du kan använda __len__ för att definiera längden på ett anpassat objekt och __getitem__ för att göra det indexerbart:
# Using __len__ and __getitem__ in a custom class
class CustomList:
def __init__(self, items):
self.items = items
def __len__(self):
return len(self.items) # Defines the behavior of len()
def __getitem__(self, index):
return self.items[index] # Enables indexing
custom_list = CustomList([1, 2, 3])
print(len(custom_list)) # Outputs: 3
print(custom_list[1]) # Outputs: 2Vanliga misstag med magiska metoder
Här är några misstag att undvika:
- Att definiera en magisk metod utan att anpassa den till dess avsedda beteende.
- Att överlagra operatorer i onödan.
- Att glömma att implementera nödvändiga magiska metoder i anpassade datatyper.
Vad har vi lärt oss?
I den här lektionen har du lärt dig:
- Vad magiska metoder är och varför de är användbara.
- Hur man använder vanliga magiska metoder som
__init__,__str__och__repr__. - Hur man överlagrar operatorer med hjälp av magiska metoder.
Bra jobbat! Nu går vi vidare till nästa ämne.

Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 53
- Lektioner
- 225
Vanliga frågor
Är lektionen ”Magiska metoder (__str__, __repr__ med flera)” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lär Er AI med Python, inklusive ”Magiska metoder (__str__, __repr__ med flera)”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Lär Er AI med Python innehåller totalt 6 lektioner.
Vad lär jag mig i ”Magiska metoder (__str__, __repr__ med flera)”?
Fördjupa er i Pythons specialmetoder för att anpassa objekts beteende Ni övar på Lär Er AI med Python med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Lär Er AI med Python?
Du behöver inga förkunskaper. Utbildningen i Lär Er AI med Python på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 6 av 6.
Hur lång tid tar lektionen ”Magiska metoder (__str__, __repr__ med flera)”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Lär Er AI med Python-lektionen?
Ja. Varje Lär Er AI med Python-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Klasser och objekt
- Attribut och metoder
- Arv
- Polymorfism
- Inkapsling och abstraktion
- Magiska metoder (__str__, __repr__ med flera)