Magic Methods (__str__, __repr__, osv.)
Dyk ned i Pythons specialmetoder til tilpasning af objekters adfærd.
Magic Methods (__str__, __repr__, osv.) er en gratis Python Academy-lektion på CoddyKit. Dette er lektion 6 af 6. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Python Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Python Academy-kurset indeholder 6 lektioner i alt.
Introduktion til magiske metoder
Magiske metoder, også kaldet metoder med dobbelt understregning, er særlige metoder i Python, som gør det muligt for dig at definere, hvordan objekter opfører sig i bestemte situationer.
I denne lektion lærer du at bruge almindelige magiske metoder som __str__, __repr__ og andre.

Hvad er magiske metoder?
Magiske metoder er foruddefinerede metoder i Python, som automatisk kaldes, når bestemte handlinger udføres på objekter. De kendes på deres to understregninger, f.eks. __init__ eller __str__.
Metoden __init__
Metoden __init__ er en konstruktør, der initialiserer et nyt objekt. Den kaldes automatisk, når et objekt oprettes:
# 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__ definerer et objekts strengrepræsentation, når print() kaldes:
# 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__ angiver en officiel strengrepræsentation af et objekt, som ofte bruges til fejlfinding:
# 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)Overbelastning af operatorer med magiske metoder
Du kan bruge magiske metoder til at tilpasse funktionsmåden for 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)Almindeligt anvendte magiske metoder
Her er nogle almindeligt anvendte magiske metoder:
__len__: Definerer, hvordan funktionenlen()fungerer.__getitem__: Gør det muligt at bruge indeksering som med en liste eller ordbog.__eq__: Tilpasser lighedssammenligningen ved hjælp af==.
Brug af __len__ og __getitem__
Du kan bruge __len__ til at definere længden på et brugerdefineret objekt og __getitem__ til at gøre det muligt at indeksere objektet:
# 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: 2Almindelige fejl med magiske metoder
Her er nogle fejl, du bør undgå:
- At definere en magisk metode uden at følge dens tilsigtede funktionsmåde.
- At overbelaste operatorer unødvendigt.
- At glemme at implementere de nødvendige magiske metoder i brugerdefinerede datatyper.
Hvad har du lært?
I denne lektion har du lært:
- Hvad magiske metoder er, og hvorfor de er nyttige.
- Hvordan du bruger almindelige magiske metoder som
__init__,__str__og__repr__. - Hvordan du overbelaster operatorer ved hjælp af magiske metoder.
Godt klaret! Lad os gå videre til det næste emne.

Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 76
- Lektioner
- 320
Ofte stillede spørgsmål
Er lektionen “Magic Methods (__str__, __repr__, osv.)” gratis?
Ja — hele teksten til “Magic Methods (__str__, __repr__, osv.)” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Python Academy-kurset, skal du opgradere til CoddyKit PRO. Python Academy-kurset indeholder 6 lektioner i alt.
Hvad lærer jeg i “Magic Methods (__str__, __repr__, osv.)”?
Dyk ned i Pythons specialmetoder til tilpasning af objekters adfærd. Du øver dig i Python Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Python Academy?
Der kræves ingen tidligere erfaring. Python Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 6 af 6.
Hvor lang tid tager lektionen “Magic Methods (__str__, __repr__, osv.)”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Python Academy-lektion?
Ja. Alle Python Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Klasser og objekter
- Attributter og metoder
- Nedarvning
- Polymorfi
- Indkapsling og abstraktion
- Magic Methods (__str__, __repr__, osv.)