Voortgang Week 1
Les 4 Week 1

OOP in Python Code

Van theorie naar praktijk: leer hoe je classes, constructors, attributen en methoden schrijft in Python.

Bella en Kees als OOP objects

Laten we kijken hoe we onze honden Bella en Kees kunnen modelleren in Python OOP code.

Foto van een hond (Bella)

Bella - 70 cm hoog, 28 kg

Foto van een keeshond (Kees)

Kees - 40 cm hoog, 25 kg

De Hond Class in Python

Hieronder zie je hoe de Hond klasse eruitziet in Python. Let op de verschillende onderdelen:

Python
class Hond: # Class
    """
    Een klasse die een Hond representeert.
    """
    def __init__(self, naam, hoogte, gewicht): # Constructor
        """
        Initializeer een nieuwe hond met basis attributes:
            naam (str): The name of the dog
            hoogte (float): Hoogte in centimeters
            gewicht (float): Weight in kilograms
        """

        # Attributes
        self.naam = naam
        self.hoogte = hoogte
        self.gewicht = gewicht
        self.energie_level = 100  # start vol

Constructor (__init__)

De __init__ methode is de constructor. Deze wordt automatisch aangeroepen wanneer je een nieuw object maakt. Hier stel je de beginwaarden in voor je attributen.

Een Methode Toevoegen

Nu voegen we een methode toe waarmee de hond kan rennen:

Python
def ren(self): # Method
    """
    Honden rennen en verbruiken energie.
    """

    if self.energie_level >= 20:
        self.energie_level -= 20
        return f"{self.naam} rent vrolijk! Energie level: {self.energie_level}"
    
    else:
        return f"{self.naam} is te moe om te rennen. Geef iets te eten!"

Belangrijk: self

Het keyword self verwijst naar het huidige object. Hiermee kun je de attributen van dat specifieke object gebruiken en aanpassen.

Objecten Aanmaken

Nu kunnen we onze honden Bella en Kees aanmaken als objecten:

Python
# Objects
hond_bella = Hond("Bella", 70, 28)
hond_kees = Hond("Kees", 40, 25)

Wat gebeurt hier?

Hond("Bella", 70, 28) roept de constructor aan met de naam "Bella", hoogte 70 cm en gewicht 28 kg. Dit maakt een nieuw Hond-object aan met deze waarden.

Key Points

  • class Hond: definieert de klasse
  • def __init__(self, ...): is de constructor
  • self.attribuut = waarde stelt een attribuut in
  • def methode(self): definieert een methode
  • Hond("naam", waarde, waarde) maakt een nieuw object

Test je kennis

1. Welke methode wordt automatisch aangeroepen bij het maken van een object?

A def start(self)
B def create(self)
C def __init__(self)
D def new(self)
Correct! De __init__ methode is de constructor die automatisch wordt aangeroepen.
Helaas, het juiste antwoord is C. De __init__ methode is de constructor die automatisch wordt aangeroepen.

2. Waar staat 'self' voor in een Python class?

A De naam van de klasse
B Het huidige object
C Een global variabele
D De return waarde
Correct! 'self' verwijst naar het huidige object, zodat je de attributen van dat specifieke object kunt gebruiken.
Helaas, het juiste antwoord is B. 'self' verwijst naar het huidige object.

3. Hoe maak je een nieuw Hond object met naam "Max", hoogte 60 en gewicht 30?

A Hond("Max", 60, 30)
B new Hond("Max", 60, 30)
C create Hond("Max", 60, 30)
D Hond.new("Max", 60, 30)
Correct! In Python maak je een object door de klassenaam aan te roepen met de argumenten voor de constructor.
Helaas, het juiste antwoord is A. In Python maak je een object door de klassenaam aan te roepen met de argumenten.