Als developer, wil ik een lange if/elif-keten vervangen door รฉรฉn tabel van keuzes, zodat ik een commando kan toevoegen zonder de rest van mijn code aan te raken.
Twaalf elif's na elkaar? Dat wordt onleesbaar. Dit is het moment voor een betere structuur.
Veel code moet veel keuzes maken. Gebruik je if/elif/elif/elif... voor alles, dan wordt het onleesbaar.
log_level = user_input
if log_level == "debug":
set_debug()
elif log_level == "info":
set_info()
elif log_level == "warning":
set_warning()
elif log_level == "error":
set_error()
elif log_level == "critical":
set_critical()
# ... veel meer elif's
levels = {
"debug": set_debug,
"info": set_info,
"warning": set_warning,
"error": set_error,
"critical": set_critical,
}
if user_input in levels:
levels[user_input]()
Elke klik voegt een nieuw log-level toe. Kijk hoe de twee aanpakken van grootte verschillen.
Experimenteer: if/elif vs dictionary dispatch.
Je drone krijgt commando's binnen als tekst. In plaats van een lange if/elif-keten gebruik je รฉรฉn dictionary. Bestand: drone_commands.py
"takeoff", "land", "forward", "back", "left" en "right"..get() en een duidelijke fallback, zodat een typfout je script niet laat crashen.Acceptatiecriteria
if/elif-keten op de commando's โ het opzoeken doet de dictionary..get().