Polymorfisme
Utforsk hvordan polymorfisme muliggjør fleksibel og dynamisk kode.
Polymorfisme er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 4 av 6. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 6 leksjoner.
Introduksjon til polymorfisme
Polymorfisme er et grunnleggende konsept i objektorientert programmering (OOP) som gjør det mulig å behandle objekter fra ulike klasser som objekter fra en felles superklasse. Det gir fleksibilitet og gjenbrukbarhet i koden.
I denne leksjonen lærer du hvordan du implementerer polymorfisme i Python ved hjelp av metoder og klasser.

Hva er polymorfisme?
Polymorfisme gjør det mulig for metoder i ulike klasser å ha samme navn, samtidig som de oppfører seg forskjellig. Det gjør koden mer fleksibel og enklere å utvide.
# 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 DogPolymorfisme med metoder
Metoder med samme navn i ulike klasser kan ha forskjellige implementasjoner.
# 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å polymorfisme med metoder
Polymorfisme med metoder
Metoder med samme navn i ulike klasser kan ha forskjellige implementasjoner.
# 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 meowsPolymorfisme med funksjoner
Polymorfisme gjør det mulig for den samme funksjonen å fungere med ulike 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 fliesPolymorfisme med arv
Polymorfisme oppnås ofte gjennom arv, der underklasser overstyrer 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 startsFordeler med polymorfisme
Polymorfisme har flere fordeler:
- Gjenbrukbarhet og fleksibilitet i koden.
- Bedre lesbarhet og organisering av koden.
- Fremmer bruk av felles grensesnitt.
Eksempel fra virkeligheten
Her er et eksempel fra virkeligheten som bruker polymorfisme.
# 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 interfacesVanlige feil med polymorfisme
Her er noen feil du bør unngå:
- Å glemme å overstyre metoder i underklasser når det er nødvendig.
- Å forveksle rekkefølgen for metodeoppslag (MRO) ved multippel arv.
- Å bruke polymorfisme unødvendig til enkle oppgaver.
Hva har du lært?
I denne leksjonen har du lært:
- Hva polymorfisme er, og hvordan det fungerer i Python.
- Hvordan du implementerer polymorfisme med metoder og arv.
- Fordelene ved å bruke polymorfisme i OOP.
Godt jobbet! La oss gå videre til neste emne.

Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 76
- Leksjoner
- 320
Ofte stilte spørsmål
Er leksjonen «Polymorfisme» gratis?
Ja – hele teksten i «Polymorfisme» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 6 leksjoner.
Hva lærer jeg i «Polymorfisme»?
Utforsk hvordan polymorfisme muliggjør fleksibel og dynamisk kode. Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Python Academy?
Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 6.
Hvor lang tid tar leksjonen «Polymorfisme»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?
Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Klasser og objekter
- Attributter og metoder
- Arv
- Polymorfisme
- Inkapsling og abstraksjon
- Magiske metoder (__str__, __repr__ osv.)