Als developer, wil ik dat elk nieuw object verplicht met de juiste startgegevens wordt aangemaakt en zelf weet welk object het is, zodat ik nooit een halfleeg object rondstuur en elke methode met de juiste eigen data werkt.
Een constructor mag meer dan één ding verplichten, en sommige dingen mogen optioneel zijn. Met een default-waarde geef je een parameter een standaard, zodat de aanroeper hem mag weglaten.
Je kent default-waarden al van gewone functies uit sprint 5. In een constructor werken ze precies
zo. Parameters zonder standaard zijn verplicht; parameters met een = zijn optioneel:
class Dog:
def __init__(self, name, energy=100, breed="unknown"):
self.name = name
self.energy = energy
self.breed = breed
Nu kun je een hond kort of uitgebreid aanmaken:
rex = Dog("Rex") # energy=100, breed="unknown"
bella = Dog("Bella", 80) # energy=80, breed="unknown"
max = Dog("Max", 90, "labrador") # alles zelf ingevuld
def __init__(self, energy=100,
name) is een SyntaxError. Eerst wat verplicht is, dan wat optioneel is.
Vul de velden in die je wilt meegeven en laat de rest leeg. Klik op Aanmaken: weggelaten velden worden oranje ingevuld met de standaardwaarde.
De class Dog heeft __init__(self, name, energy=100, breed="unknown").
Maak honden met en zonder de optionele parameters.
rex = Dog("Rex") β alleen naam.rex.energy en rex.breed β wat zijn de defaults?max = Dog("Max", 90, "labrador")max.breedbella = Dog("Bella", breed="beagle") en dan bella.energyBreid de constructor van Player uit met optionele parameters.
name verplicht.lives en score een passende default-waarde.Acceptatiecriteria