Lär Er AI med Python · Lektion

Magiska metoder (__str__, __repr__ med flera)

Fördjupa er i Pythons specialmetoder för att anpassa objekts beteende

Lektion 6 av 611 steg

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.

Magiska metoder (__str__, __repr__ med flera) — illustration 1

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 30

Metoden __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: 30

Metoden __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 funktionen len().
  • __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: 2

Vanliga 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.

Magiska metoder (__str__, __repr__ med flera) — illustration 11
Gratis att börja

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

  1. Klasser och objekt
  2. Attribut och metoder
  3. Arv
  4. Polymorfism
  5. Inkapsling och abstraktion
  6. Magiska metoder (__str__, __repr__ med flera)
← Tillbaka till Lär Er AI med Python