Polymorfi
Udforsk, hvordan polymorfi muliggør fleksibel og dynamisk kode.
Polymorfi er en gratis Python Academy-lektion på CoddyKit. Dette er lektion 4 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 polymorfi
Polymorfi er et centralt koncept i objektorienteret programmering (OOP), der gør det muligt at behandle objekter fra forskellige klasser som objekter af en fælles superklasse. Det giver fleksibilitet og genbrug af kode.
I denne lektion lærer du, hvordan du implementerer polymorfi i Python ved hjælp af metoder og klasser.

Hvad er polymorfi?
Polymorfi gør det muligt for metoder i forskellige klasser at have samme navn, men opføre sig forskelligt. Det gør koden mere fleksibel og lettere at udvide.
# 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 DogPolymorfi med metoder
Metoder med samme navn i forskellige klasser kan have forskellige implementeringer.
# 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 meowsEksempel på metoders polymorfi
Polymorfi med metoder
Metoder med samme navn i forskellige klasser kan have forskellige implementeringer.
# 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 meowsPolymorfi med funktioner
Polymorfi gør det muligt for den samme funktion at arbejde med forskellige typer objekter.
# 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 fliesPolymorfi med nedarvning
Polymorfi opnås ofte gennem nedarvning, hvor underklasser tilsidesætter metoder fra 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 startsFordele ved polymorfi
Polymorfi giver flere fordele:
- Genanvendelig og fleksibel kode.
- Forbedret læsbarhed og struktur i koden.
- Fremmer brugen af fælles grænseflader.
Eksempel fra virkeligheden
Her er et eksempel fra virkeligheden, der bruger polymorfi.
# 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 interfacesAlmindelige fejl ved polymorfi
Her er nogle fejl, du bør undgå:
- At glemme at tilsidesætte metoder i underklasser, når det er nødvendigt.
- At forveksle rækkefølgen for metodeopløsning (MRO) ved multipel nedarvning.
- At bruge polymorfi unødvendigt til enkle opgaver.
Hvad har du lært?
I denne lektion lærte du:
- Hvad polymorfi er, og hvordan det fungerer i Python.
- Hvordan du implementerer polymorfi med metoder og nedarvning.
- Fordelene ved at bruge polymorfi i OOP.
Godt gået! Lad os gå videre til 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 “Polymorfi” gratis?
Ja — hele teksten til “Polymorfi” 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 “Polymorfi”?
Udforsk, hvordan polymorfi muliggør fleksibel og dynamisk kode. 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 4 af 6.
Hvor lang tid tager lektionen “Polymorfi”?
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.)