Lär Er AI med Python · Lektion

Polymorfism

Utforska hur polymorfism möjliggör flexibel och dynamisk kod

Lektion 4 av 612 steg

Polymorfism är en gratis lektion i Lär Er AI med Python på CoddyKit. Detta är lektion 4 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 polymorfism

Polymorfism är ett grundläggande koncept inom objektorienterad programmering (OOP) som gör det möjligt att behandla objekt från olika klasser som objekt från en gemensam superklass. Det ger flexibilitet och återanvändbarhet i koden.

I den här lektionen lär du dig att implementera polymorfism i Python med hjälp av metoder och klasser.

Polymorfism — illustration 1

Vad är polymorfism?

Polymorfism gör det möjligt för metoder i olika klasser att ha samma namn men fungera på olika sätt. Det gör koden mer flexibel och enklare att utöka.

# Defining a superclass
class Animal:
    # Method in the superclass
    def speak(self):
        print("Animal speaks")  # Generic message for all animals

# Defining a subclass that overrides the speak method
class Dog(Animal):
    def speak(self):
        print("Dog barks")  # Specific behavior for Dog

Polymorfism med metoder

Metoder med samma namn i olika klasser kan ha olika implementationer.

# Another subclass with its own implementation of the speak method
class Cat(Animal):
    def speak(self):
        print("Cat meows")  # Specific behavior for Cat

# Function demonstrating polymorphism
# It can accept objects of any subclass of Animal

def animal_sound(animal):
    animal.speak()  # Calls the appropriate speak method based on the object type

# Creating objects of Dog and Cat
dog = Dog()
cat = Cat()

# Calling the function with different objects
animal_sound(dog)  # Outputs: Dog barks
animal_sound(cat)  # Outputs: Cat meows

Exempel på metodpolymorfism

Polymorfism med metoder

Metoder med samma namn i olika klasser kan ha olika implementationer.

# Another subclass with its own implementation of the speak method
class Cat(Animal):
    def speak(self):
        print("Cat meows")  # Specific behavior for Cat

# Function demonstrating polymorphism
# It can accept objects of any subclass of Animal

def animal_sound(animal):
    animal.speak()  # Calls the appropriate speak method based on the object type

# Creating objects of Dog and Cat
dog = Dog()
cat = Cat()

# Calling the function with different objects
animal_sound(dog)  # Outputs: Dog barks
animal_sound(cat)  # Outputs: Cat meows

Polymorfism med funktioner

Polymorfism gör det möjligt för samma funktion att arbeta med olika typer av objekt.

# Defining two unrelated classes
class Bird:
    def fly(self):
        print("Bird flies")  # Behavior specific to birds

class Plane:
    def fly(self):
        print("Plane flies")  # Behavior specific to planes

# Function demonstrating polymorphism
# It can accept objects of both Bird and Plane

def flying_object(obj):
    obj.fly()  # Calls the appropriate fly method based on the object type

# Creating objects of Bird and Plane
bird = Bird()
plane = Plane()

# Calling the function with different objects
flying_object(bird)  # Outputs: Bird flies
flying_object(plane)  # Outputs: Plane flies

Polymorfism med arv

Polymorfism uppnås ofta genom arv, där subklasser åsidosätter metoder från superklassen.

# Superclass representing a generic vehicle
class Vehicle:
    def start(self):
        print("Vehicle starts")  # Generic behavior for all vehicles

# Subclass representing a specific type of vehicle
class Car(Vehicle):
    def start(self):
        print("Car starts")  # Specific behavior for cars

# Subclass representing another specific type of vehicle
class Bike(Vehicle):
    def start(self):
        print("Bike starts")  # Specific behavior for bikes

# Function demonstrating polymorphism
# It can accept objects of any subclass of Vehicle

def start_vehicle(vehicle):
    vehicle.start()  # Calls the appropriate start method based on the object type

# Creating objects of Car and Bike
car = Car()
bike = Bike()

# Calling the function with different objects
start_vehicle(car)  # Outputs: Car starts
start_vehicle(bike)  # Outputs: Bike starts

Fördelar med polymorfism

Polymorfism erbjuder flera fördelar:

  • Återanvändbar och flexibel kod.
  • Förbättrad läsbarhet och struktur i koden.
  • Uppmuntrar användningen av gemensamma gränssnitt.

Exempel från verkligheten

Här är ett exempel från verkligheten som använder polymorfism.

# Real-world example of polymorphism
class Developer:
    def work(self):
        print("Writing code")  # Specific task for developers

class Designer:
    def work(self):
        print("Designing user interfaces")  # Specific task for designers

# Function demonstrating polymorphism
# It can accept objects of both Developer and Designer

def workday(employee):
    employee.work()  # Calls the appropriate work method based on the object type

# Creating objects of Developer and Designer
developer = Developer()
designer = Designer()

# Calling the function with different objects
workday(developer)  # Outputs: Writing code
workday(designer)  # Outputs: Designing user interfaces

Vanliga misstag med polymorfism

Här är några misstag ni bör undvika:

  • Att glömma att åsidosätta metoder i underklasser när det krävs.
  • Att förväxla metodupplösningsordningen (MRO) vid multipelt arv.
  • Att använda polymorfism i onödan för enkla uppgifter.

Vad har vi lärt oss?

I den här lektionen har du lärt dig:

  • Vad polymorfism är och hur det fungerar i Python.
  • Hur man implementerar polymorfism med metoder och arv.
  • Fördelarna med att använda polymorfism inom OOP.

Bra jobbat! Nu går vi vidare till nästa ämne.

Polymorfism — illustration 12
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 ”Polymorfism” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lär Er AI med Python, inklusive ”Polymorfism”, 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 ”Polymorfism”?

Utforska hur polymorfism möjliggör flexibel och dynamisk kod 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 4 av 6.

Hur lång tid tar lektionen ”Polymorfism”?

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