Python Academy · leksjon

Polymorfisme

Utforsk hvordan polymorfisme muliggjør fleksibel og dynamisk kode.

Leksjon 4 av 612 trinn

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.

Polymorfisme — illustrasjon 1

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 Dog

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 meows

Eksempel 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 meows

Polymorfisme 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 flies

Polymorfisme 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 starts

Fordeler 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 interfaces

Vanlige 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.

Polymorfisme — illustrasjon 12
Gratis å komme i gang

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

  1. Klasser og objekter
  2. Attributter og metoder
  3. Arv
  4. Polymorfisme
  5. Inkapsling og abstraksjon
  6. Magiske metoder (__str__, __repr__ osv.)
← Tilbake til Python Academy