Object-Oriented Programming


Home 4BSW1 4BSW2 4MTLAT/4LAT 4MWW1 4MWW2 4NWE2 5BWE 5EWI/5LWI/5WWI1 5WWI2 About

1. Object-Oriented Programming in Python

1.1. Introductie

Welke datatypen kennen jullie al?

  • boolean
  • char
  • int
  • float
  • string
  • tuple
  • list
  • set

1.2. Categorieën

In welke schuifjes plaatsen jullie de volgende dingen?

instrument1.jpg

instrument2.jpg

instrument3.jpg

instrument4.jpg

instrument5.jpg

1.3. Classes

python syntax-voorbeeld (werkt niet):

class Gitaar(Snaarinstrument):
    def __init__(self, stemming = ['E', 'A', 'D', 'G'], materiaal = 'hout')
        self.materiaal = materiaal
        self.Stemmen(stemming)

    def Spelen(self, melodie):
        for klank in melodie:
            Afspelen(klank)

    def __str__(self):
        return f"Een {self.materiaal}en gitaar."

mijn_gitaar = Gitaar()
seven_nation_army = ['E', 'E', 'G', 'E', 'D', 'C', 'B'] * 12
mijn_gitaar.Spelen(seven_nation_army)

Noot:

  • signaalwoord “class” + inschuiving: maakt een eigen “datatype” aan.
  • klassen-hierarchie bv. “Snaarinstrument” (optioneel): thema overerving, latere les.
  • signaalwoord “self”: om eigenschappen/functies van de class te bereiken; eerste argument in alle klas-functies.
  • speciaal-functie __init__(self, ...): “constructur”; deze functie wordt automatisch uitgevoerd als je een nieuwe instantie van de “class” aanmakt.
  • “punt”-notatie: functies oproepen met

1.4. Motivatie

  • wij denken in categorieën
  • dit is dus een heel intuitieve manier om te programmeren.

Andere voorbeeld:

class Polynoom(functie):
    def Nulpunten(self):
        pass # de polynoom vindt zijn eigen nulpunten
    def Plot(self):
        pass # een afbeelding aanmaken...
    # ... enzoverder.

2. Een Turtle Racer

import turtle
import random
import time

class RenSchildpad:
    def __init__(self, kleur, positie):
        self.schildpad = turtle.Turtle(shape="turtle")
        self.schildpad.color(kleur)
        self.schildpad.penup()
        self.schildpad.goto(positie)
        self.snelheid = random.randint(5, 15)

    def race(self):
        stap = random.randint(1, self.snelheid)
        self.schildpad.forward(stap)
        time.sleep(0.1)

Opdracht:

  • maak er drie schildpadden aan en laat ze tegen elkaar racen!

3. Bronnen

Date: 2024-03-22 Fri 00:00

Author: Falk Mielke