Python For Kids · Lektion

Polymorfi

Udforsk avancerede OOP-koncepter.

Lektion 5 af 510 trin

Polymorfi er en gratis Python For Kids-lektion på CoddyKit. Dette er lektion 5 af 5. 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 For Kids, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Python For Kids-kurset indeholder 5 lektioner i alt.

Polymorfi

Velkommen tilbage til lektionen om objektorienteret programmering (OOP)! I dag skal vi udforske polymorfi i Python, et kraftfuldt koncept, der gør det muligt for objekter at antage flere former.

Polymorfi  — illustration 1

Hvad er polymorfi?

Polymorfi er et grundlæggende koncept i OOP, der gør det muligt at behandle objekter fra forskellige klasser som objekter fra en fælles superklasse. Det gør, at den samme metode kan opføre sig forskelligt afhængigt af det objekt, der kalder den.

  • Definition: "Mange former" – forskellige objekters evne til at reagere på samme metodekald på hver deres måde.
  • Formål: Gør kode mere fleksibel og lettere at integrere ved at tillade udskiftelige objekter.

Lad os se, hvordan polymorfi fungerer i Python!

Implementering af polymorfi

Polymorfi kan opnås i Python gennem tilsidesættelse af metoder og ved hjælp af indbyggede funktioner, der fungerer med forskellige objekttyper.

  • Tilsidesættelse af metoder: Omdefinering af en metode i en underklasse, som allerede er defineret i superklassen.
  • Indbyggede funktioner: Funktioner som len(), der fungerer med forskellige datatyper.

Lad os se nærmere på tilsidesættelse af metoder.

Tilsidesættelse af metoder

Tilsidesættelse af metoder gør det muligt for en underklasse at levere en specifik implementering af en metode, der allerede er defineret i dens superklasse. Dette er et centralt aspekt ved polymorfi.

Eksempel:

# Defines the Animal parent class with a speak method
class Animal:
    def speak(self):
        print("The animal makes a sound.")  # Generic speak method

Oprettelse af underklasser med tilsidesatte metoder

Lad os oprette underklasser, der nedarver fra Animal og tilsidesætter metoden speak for at levere specifik adfærd.

Eksempel:

# Defines the Dog child class inheriting from Animal
class Dog(Animal):
    def speak(self):
        print("The dog barks.")  # Overridden speak method

# Defines the Cat child class inheriting from Animal
class Cat(Animal):
    def speak(self):
        print("The cat meows.")  # Overridden speak method

Brug af polymorfi med tilsidesatte metoder

Lad os nu oprette objekter fra underklasserne og se, hvordan de udviser forskellig adfærd ved hjælp af det samme metodenavn.

Eksempel:

# Creates objects of Dog and Cat classes
dog = Dog()
cat = Cat()

# Calls the speak method on both objects
dog.speak()  # Output: The dog barks.
cat.speak()  # Output: The cat meows.

Polymorfi med indbyggede funktioner

Polymorfi er ikke begrænset til brugerdefinerede klasser. Pythons indbyggede funktioner som len() fungerer med forskellige datatyper og demonstrerer dermed polymorf adfærd.

Eksempel:

# Uses len() with a list
my_list = [1, 2, 3, 4]
print(len(my_list))  # Output: 4

# Uses len() with a string
my_string = "Hello"
print(len(my_string))  # Output: 5

# Uses len() with a dictionary
my_dict = {"a": 1, "b": 2}
print(len(my_dict))  # Output: 2

Eksempelprogram: Beregning af arealet af figurer

Lad os oprette et program, der beregner arealet af forskellige figurer ved hjælp af polymorfi. Vi definerer en superklasse Shape samt underklasserne Circle og Rectangle, som tilsidesætter metoden area.

Kode:

# Defines the Shape parent class with an area method
class Shape:
    def area(self):
        pass  # Placeholder method

# Defines the Circle child class inheriting from Shape
class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius  # Sets the radius of the circle

    def area(self):
        return 3.14 * self.radius ** 2  # Calculates area of the circle

# Defines the Rectangle child class inheriting from Shape
class Rectangle(Shape):
    def __init__(self, width, height):
        self.width = width    # Sets the width of the rectangle
        self.height = height  # Sets the height of the rectangle

    def area(self):
        return self.width * self.height  # Calculates area of the rectangle

# Creates objects of Circle and Rectangle classes
circle = Circle(5)
rectangle = Rectangle(4, 6)

# Calculates and prints areas using polymorphism
print("Circle Area:", circle.area())        # Output: Circle Area: 78.5
print("Rectangle Area:", rectangle.area())  # Output: Rectangle Area: 24
# Defines the Vehicle parent class with a move method
class Vehicle:
    def move(self):
        print("The vehicle moves.")

# Defines the Bicycle child class inheriting from Vehicle
class Bicycle(Vehicle):
    def move(self):
        print("The bicycle pedals forward.")

# Defines the Airplane child class inheriting from Vehicle
class Airplane(Vehicle):
    def move(self):
        print("The airplane flies in the sky.")

# Creates objects of Bicycle and Airplane classes
bike = Bicycle()
plane = Airplane()

# Calls the move method on both objects
bike.move()
plane.move()

Godt gået!

Du har lært om polymorfi i Python, og hvordan det gør det muligt for objekter fra forskellige klasser at reagere forskelligt på de samme metodekald. Polymorfi gør din kode mere fleksibel og skalerbar, så den bliver lettere at administrere og udvide. Bliv ved med at øve dig ved at oprette flere klasser og metoder, der bruger polymorf adfærd, for at styrke din forståelse!

Polymorfi  — illustration 10
Gratis at komme i gang

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
22
Lektioner
94

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 For Kids-kurset, skal du opgradere til CoddyKit PRO. Python For Kids-kurset indeholder 5 lektioner i alt.

Hvad lærer jeg i “Polymorfi ”?

Udforsk avancerede OOP-koncepter. Du øver dig i Python For Kids 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 For Kids?

Der kræves ingen tidligere erfaring. Python For Kids 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 5 af 5.

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 For Kids-lektion?

Ja. Alle Python For Kids-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

  1. Introduktion til OOP
  2. Oprettelse af klasser og objekter
  3. Nedarvning
  4. Indkapsling
  5. Polymorfi
← Tilbage til Python For Kids