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

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 DogPolymorfism 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 meowsExempel 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 meowsPolymorfism 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 fliesPolymorfism 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 startsFö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 interfacesVanliga 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.

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
- Klasser och objekt
- Attribut och metoder
- Arv
- Polymorfism
- Inkapsling och abstraktion
- Magiska metoder (__str__, __repr__ med flera)