Als developer van het vliegscript, wil ik mijn dronecode opdelen in kleine helpers in een eigen module, zodat mijn hoofdscript kort en leesbaar blijft en ik de helpers kan testen zonder dat de drone opstijgt.
Helpers in een eigen bestand zetten en er precies uithalen wat je nodig hebt.
In taak 2 heb je je code opgesplitst in kleine helper-functies. Die staan nu nog allemaal in hetzelfde bestand als je hoofdscript. Zodra dat bestand groeit, loop je opnieuw vast:
# monitor.py — helpers en uitvoering door elkaar
def is_valid_temp(temperature):
return 0 <= temperature <= 100
def format_reading(temperature):
return f"Temperatuur: {temperature}°C (max: 100°C)"
# ... nog 8 helpers ...
readings = [45, 120, 80]
for temperature in readings:
if is_valid_temp(temperature):
print(format_reading(temperature))
is_valid_temp()
nodig heeft, moet de functie kopiëren — precies de duplicatie uit US1.Elk .py-bestand in dezelfde map is een module die je kunt
importeren. De bestandsnaam zonder .py is de modulenaam:
# monitor.py
def is_valid_temp(temperature):
return 0 <= temperature <= 100
def format_reading(temperature):
return f"Temperatuur: {temperature}°C"
readings = [45, 120, 80]
for temperature in readings:
...
# 1 bestand, alles vermengd
# helpers.py — alleen definities
def is_valid_temp(temperature):
return 0 <= temperature <= 100
def format_reading(temperature):
return f"Temperatuur: {temperature}°C"
# main.py — alleen uitvoering
from helpers import is_valid_temp
from helpers import format_reading
readings = [45, 120, 80]
from helpers import is_valid_temp, format_reading
# ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
# bestandsnaam welke namen je wilt gebruiken
# zonder .py
# Daarna gebruik je ze alsof je ze hier zelf had geschreven:
print(format_reading(45))
Kies welk bestand je start. Zet de schakelaar aan of uit om te zien wat
if __name__ == "__main__": doet:
def en constanten). Alles wat écht iets doet, staat in je hoofdscript
achter if __name__ == "__main__":.
Hieronder staat main.py. De module helpers bestaat al en bevat
load_readings(), is_valid_temp() en format_reading().
Het script gebruikt een functie die nog niet geïmporteerd is — draai het en los de fout op.
Deze tester draait geen echte Python, maar controleert je importregels en rekent de uitvoer na.
Probeer daarna: haal de main-guard weg, of importeer een functie die niet bestaat.
Scenario: je vluchtscript uit taak 2 bevat inmiddels acht helper-functies en de opstartcode door elkaar. Je wilt de helpers in een eigen bestand zetten, zodat je hoofdscript alleen nog het vluchtplan uitvoert — en zodat je de helpers kunt testen zonder dat er een drone in de lucht komt.
Gegeven constanten:
VALID_DIRECTIONS = ["forward", "back", "left", "right", "up", "down"]
MIN_DISTANCE = 20
MAX_DISTANCE = 500
Je taak: splits je project in drone_helpers.py en
main.py. Bepaal zelf welke functies waar horen en hoe je ze importeert.
Acceptatiecriteria:
drone_helpers.py bevat alleen definities en constanten — geen code die iets uitvoertmain.py importeert de helpers met from drone_helpers import ...main.py staat achter if __name__ == "__main__":main.py het plan uit taak 2 precies zoals vóór het splitsenimport drone_helpers in een leeg bestand geeft geen enkele uitvoer