Polymorfi
Udforsk, hvordan polymorfi muliggør fleksibel og dynamisk kode
Polymorfi er en gratis Lær AI med Python-lektion på CoddyKit. Dette er lektion 4 af 6. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Lær AI med Python, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Lær AI med Python-kurset indeholder 6 lektioner i alt.
Introduktion til polymorfi
Polymorfi er et grundlæggende begreb inden for objektorienteret programmering (OOP), som gør det muligt at behandle objekter fra forskellige klasser som objekter fra en fælles superklasse. Det giver fleksibilitet og mulighed for 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å polymorfi med metoder
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 har flere fordele:
- Genbrug af kode og større fleksibilitet.
- Bedre læsbarhed og organisering af 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 med polymorfi
Her er nogle fejl, du bør undgå:
- At glemme at overskrive 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 har du lært:
- 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 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
- 53
- Lektioner
- 225
Ofte stillede spørgsmål
Er lektionen “Polymorfi” gratis?
Ja — alle 3 lektioner i læringssporet Lær AI med Python, inklusive “Polymorfi”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Lær AI med Python-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 Lær AI med Python 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å Lær AI med Python?
Der kræves ingen tidligere erfaring. Lær AI med Python 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 Lær AI med Python-lektion?
Ja. Alle Lær AI med Python-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.)