ID.nl logo
Zo kun je programmeren in Python - Deel 6
© Reshift Digital
Huis

Zo kun je programmeren in Python - Deel 6

In de href="https://computertotaal.nl/artikelen/pc/zo-kun-je-programmeren-in-python-deel-5/" rel="noopener noreferrer" target="_blank">vorige les</a> leerde je met bestanden werken en zag je hoe je je programma kunt laten reageren op exceptions. Zo beginnen je programma’s ondertussen al vrij complex te worden. Tijd dus om wat structuur in je programma’s te brengen, en dat doen we in deze les met functies en modules. We bekijken ook enkele standaardmodules van Python.

Wil je meer leren over programmeren? Bekijk dan onze Cursus: programmeren in Phyton (boek & online cursus).

Tot nu toe waren onze Python-programma’s vrij kort, maar je hebt ondertussen al genoeg Python-bagage om zelf al eens aan de slag te gaan en je eigen ideeën uit te werken in programma’s. En dan merk je al snel dat je programma lang en ondoorzichtig wordt. Gelukkig kent Python verschillende manieren om wat meer structuur in je programma’s te brengen.

De eerste manier ben je al tegengekomen: functies. We hebben immers in de vorige lessen al diverse standaardfuncties van Python gebruikt, zoals len, print, input, format, split, open, read en write. Een functie is een afzonderlijk stukje code dat een afgebakende taak uitvoert die je meerdere keren zou willen uitvoeren op verschillende gegevens. Zodra je in je programma dus merkt dat je een stukje code telkens aan het herhalen bent, zou je eerste gedachte moeten zijn: ik maak er een functie van!

Een functie definiëren

We tonen je als voorbeeld hoe je een functie maakt om te berekenen of een woord een palindroom is. Een palindroom of spiegelwoord is een woord dat van achteren naar voren gelezen hetzelfde is als van voor naar achter. Een eenvoudige functie om te bepalen of een woord een palindroom is, ziet er als volgt uit:

def is_palindroom(woord):letters = list(woord)palindroom = Truewhile len(letters) > 0 and palindroom:if letters[0] != letters[-1]:palindroom = Falseelse:letters.pop(0)if len(letters) > 0:letters.pop()return palindroom

Dit is niet de efficiëntste manier om te bepalen of een woord een palindroom is, maar wel een die goed te begrijpen is. Je ziet dat er in de definitie van deze functie eigenlijk maar twee zaken nieuw zijn: de eerste en de laatste regel. In de eerste regel geven we met def is_palindroom(woord): aan dat we een functie definiëren met de naam is_palindroom en dat die één parameter meekrijgt, die we woord noemen. Dan komt onze hele berekening, die je met al je kennis uit de vorige lessen na een kleine studie zou moeten begrijpen, en op het einde geven we met return palindroom aan dat we de waarde die na onze berekening in de variabele palindroom zit teruggeven.

Een functie aanroepen

Breek je hoofd nog even niet over de inhoud van de functie. Typ de code in Thonny in en sla het bestand op onder de naam palindroom.py. Voer het dan uit met een druk op F5. Er gebeurt niets, maar de functie is nu gedefinieerd. In de terminal onderaan Thonny kun je nu de functie aanroepen. Enkele voorbeelden:

>>> is_palindroom('nepalapen')True>>> is_palindroom('napalm')False>>> is_palindroom('koortsmeetsysteemstrook')True

Denk nu eens even na over wat er gebeurt als je is_palindroom('nepalapen') aanroept. De functie is_palindroom wordt dan uitgevoerd en aan de variabele woord van de functie wordt de string 'nepalapen' toegekend. Dan gebeurt die hele berekening, en geeft de functie als resultaat True of False. En voor elke andere string die je aan de functie doorgeeft, gebeurt de berekening op dezelfde manier. Op deze manier heb je de berekening ingekapseld in een afzonderlijk stukje code, de functie, die herbruikbaar is.

Overigens zijn door die inkapseling de parameter woord net zoals de variabelen letters en palindroom alleen binnen het blok van de functie gedefinieerd: het zijn wat we noemen lokale variabelen.

Recursieve functies

In onze functie is_palindroom gaan we met een while-lus alle letters in het woord af. Een andere manier om de functie te definiëren is met recursie: in de functie roepen we de functie opnieuw aan, maar op een deel van het woord. Dat ziet er als volgt uit:

def is_palindroom2(woord):if len(woord) < 2:return Trueif woord[0] != woord[-1]:return Falsereturn is_palindroom2(woord[1:-1])

Voeg deze functie in Thonny gewoon aan hetzelfde bestand toe als is_palindroom, sla het bestand op en druk op F5 om het uit te voeren. Je kunt nu deze functie is_palindroom2 uitproberen op enkele woorden. Het resultaat moet telkens hetzelfde zijn als is_palindroom op hetzelfde woord.

De functie is_palindroom2 is een mooi voorbeeld van een recursieve functie. We bekijken eerst of het woord minder dan twee letters bevat. In dat geval (het woord is leeg of heeft één letter) is het altijd een palindroom en daarom geven we in dat geval True terug. Daarna controleren we of de eerste letter verschilt van de laatste letter van het woord. Verschillen die, dan is het woord al zeker geen palindroom en geven we dus False terug.

Dan blijft er nog één geval over: de eerste en laatste letter van het woord zijn gelijk, maar van de andere letters weten we nog niets. Wat doen we dan? We roepen de functie is_palindroom2 opnieuw op, maar op die andere letters. Die verkrijgen we door de slice (zie les 2) [1:-1] op het woord toe te passen, die het woord zonder de eerste en laatste letter teruggeeft.

Belangrijk bij recursieve functies

Als je een recursieve functie schrijft, is het belangrijk dat je de functie telkens oproept op een kleinere invoer dan waarmee je begon, zodat je uiteindelijk bij een basistest uitkomt, zoals in ons geval if len(woord) < 2: en if woord[0] != woord[-1]:. In beide gevallen roepen we de functie is_palindroom2 niet meer aan, maar geven we een waarde True of False terug. Doordat we in het derde geval altijd de eerste en de laatste letter van het woord verwijderen voor we de functie opnieuw oproepen, verzekeren we dat de functie uiteindelijk altijd bij een van de basistests uitkomt.

Met modules werken

Zonder dat je het weet, heb je nu al je eerste module geschreven. Elk Python-bestand waarin je code schrijft, is immers een module voor Python. Maak nu een nieuw Python-bestand aan in Thonny en noem het bijvoorbeeld test_palindroom.py. Als je in dit bestand de code uit palindroom.py wilt gebruiken, moet je de module palindroom importeren. Dat gaat als volgt:

import palindroom

print(palindroom.is_palindroom("nepalapen"))

Met import palindroom zeggen we aan de Python-interpreter dat we toegang willen tot alle code in de module palindroom. Python zoekt dan naar bestanden met de naam palindroom.py in zijn zoekpad. Omdat de code test_palindroom.py in dezelfde directory staat als palindroom.py, vindt Python de module en zijn de functies is_palindroom en is_palindroom2 daarin beschikbaar onder de namen palindroom.is_palindroom en palindroom.is_palindroom2.

In dit geval is het niet zo handig dat je voor elke functie uit de module palindroom de aanduiding palindroom. dient te zetten, omdat dit nogal lang is. We kunnen de naam van een module die we gebruiken gelukkig ook afkorten:

import palindroom as pal

print(pal.is_palindroom("nepalapen"))

Het is ook mogelijk om het voorvoegsel voor de module volledig weg te laten door de specifieke functies die we willen gebruiken te importeren:

from palindroom import is_palindroom

print(is_palindroom("nepalapen"))

Dat kan ook met meerdere functies:

from palindroom import is_palindroom, is_palindroom2

print(is_palindroom("nepalapen"))

print(is_palindroom2("parterretrap"))

Zodra je Python-code wat langer wordt, is het aan te raden om ze in modules op te splitsen. Een goede vuistregel is dat elke module code voor één specifiek doel moet bevatten. In ons geval bevat de module bijvoorbeeld alle mogelijke code die met palindromen te maken heeft. Als we daarnaast ook code voor anagrammen zouden willen toevoegen, doe je dat het best in een afzonderlijke module, anagram.py.

Systeeminformatie

Python zelf bestaat ook uit een heleboel standaardmodules waarin allerlei handige functies zitten. Zo is er de module platform om informatie over het platform waarop je Python-programma draait op te vragen:

>>> import platform>>> platform.architecture()('64bit', 'ELF')>>> platform.platform()'Linux-4.15.0-33-generic-x86_64-with-Ubuntu-18.04-bionic'>>> platform.processor()'x86_64'>>> platform.python_version()'3.6.7'>>> platform.system()'Linux'

Verder bevat de standaardmodule os allerlei functies die met het besturingssysteem te maken hebben. Zo kun je een lijst opvragen van de bestanden in de huidige directory:

>>> import os>>> os.listdir()['palindroom.py', 'test_palindroom.py']

Werken met getallen

Als je met getallen wilt werken, komt de module math goed van pas. Die bevat allerlei functies voor berekeningen, zoals je in het volgende voorbeeld ziet:

>>> import math>>> math.floor(4.3)4>>> math.ceil(4.3)5>>> math.gcd(28, 12)4>>> math.sqrt(2)1.4142135623730951>>> math.e2.718281828459045>>> math.pi3.141592653589793>>> math.sin(2*math.pi)-2.4492935982947064e-16

In de laatste regel zie je al een nadeel van berekeningen met floats: door afrondingsfouten geeft de berekening van de sinus van 2 keer pi een heel klein getal (-2 en nog iets maal 10 tot de -16de macht) in plaats van het juiste resultaat 0.

Een andere nuttige module is random, waarmee je willekeurige getallen kunt genereren:

>>> import random>>> random.randint(1, 10)7>>> random.choice(['lies', 'jan', 'kees', 'mireille', 'koen', 'rob'])'rob'>>> namen = ['lies', 'jan', 'kees', 'mireille', 'koen', 'rob']>>> random.shuffle(namen)>>> namen['jan', 'rob', 'koen', 'mireille', 'lies', 'kees']

Zo geeft de functie randint(a, b) een willekeurig geheel getal tussen a en b terug (a en b inbegrepen). Met choice kies je een willekeurig element uit een lijst. En met shuffle schud je een lijst willekeurig door elkaar.

Samenvatting

In deze les heb je geleerd om je Python-code wat meer te structureren. Enerzijds heb je berekeningen die je vaak herhaalt in functies leren opnemen. Anderzijds heb je geleerd hoe je functies die bij elkaar horen kunt afscheiden in een afzonderlijke module. We hebben tot slot ook met enkele standaardmodules van Python kennisgemaakt. In de volgende les gaan we op de structuur van datatypes in: we tonen je hoe je zelf eigen datatypes kunt definiëren in de vorm van klassen.

Opdracht

Open de module palindroom.py in Thonny en voer ze uit met een druk op F5. Voer in de terminal onderaan de volgende opdrachten in: *>>> is_palindroom('parterretrap')True>>> woord**Traceback (most recent call last):**File "

Uitwerking

De parameter woord in de functie is een lokale variabele: die is alleen binnen het blok van de functie gedefinieerd. Als je de functie met het argument 'parterretrap' oproept, wordt die string in de functie aan de lokale variabele woord toegekend, maar na het uitvoeren van de functie is die variabele niet meer beschikbaar en geeft Python dus met een NameError aan dat het de naam woord niet kent.

Cheatsheet

Functie: een afzonderlijk stukje code dat je meerdere keren uitvoert. Importeren: aangeven dat je een module wilt gebruiken. Lokale variabele: een variabele die alleen binnen een specifiek blok (bijvoorbeeld van een functie) gedefinieerd is. Module: een afzonderlijk bestand met Python-code. Recursieve functie: een functie die zichzelf aanroept.

▼ Volgende artikel
Nieuwe Resident Evil Requiem-beelden tonen wat je te wachten staat
Huis

Nieuwe Resident Evil Requiem-beelden tonen wat je te wachten staat

Capcom heeft eerder deze week een livestream uitgezonden waarin nieuwe beelden werden getoond van het aankomende horrorspel Resident Evil Requiem. Ook werd er meer informatie gegeven over de game.

Nieuw op ID: het complete plaatje

Misschien valt het je op dat er vanaf nu ook berichten over games, films en series op onze site verschijnen. Dat is een bewuste stap. Wij geloven dat technologie niet stopt bij hardware; het gaat uiteindelijk om wat je ermee beleeft. Daarom combineren we onze expertise in tech nu met het laatste nieuws over entertainment. Dat doen we met de gezichten die mensen kennen van Power Unlimited, dé experts op het gebied van gaming en streaming. Zo helpen we je niet alleen aan de beste tv, smartphone of laptop, maar vertellen we je ook direct wat je erop moet kijken of spelen. Je vindt hier dus voortaan de ideale mix van hardware én content.

Nadat eind vorig jaar al werd aangekondigd dat spelers niet alleen Grace Ashcroft zullen besturen, maar ook Leon S. Kennedy - een bekend gezicht voor mensen die eerdere delen hebben gespeeld - werd er tijdens de livestream uitgebreid gameplay van dit personage getoond.

Twee verschillende hoofdpersonages

Daarbij werd de nadruk gelegd op de verschillende speelstijlen van Leon en Grace. Op verschillende momenten gedurende de game wordt er automatisch tussen deze personages gewisseld, en ze zullen elk compleet andere gameplay bieden.

De segmenten met Leon - onder andere bekend uit Resident Evil 2 en Resident Evil 4 - zijn erg op actievolle schietgevechten gericht. Leon kan daarnaast ook de kelen van vijanden doorsnijden. Hij heeft ook een bijl waarmee hij aanvallen kan afweren. Grace's segmenten zijn juist erg gericht op spanning en horror en draaien vooral om het vermijden van intense gevechten.

Tijdens de livestream werd ook onthuld dat de game niet alleen naar consoles en pc komt, maar dat leden van Nvidia GeForce Now de game ook kunnen spelen. Ook werd er gepraat over de verschillende moeilijkheidsgraden - zo is er een extra makkelijke moeilijkheidsgraad voor mensen die weinig ervaring hebben met dit type spellen.

De complete livestream kan hieronder worden bekeken. In verband met de volwassen inhoud van de livestream kan het mogelijk zijn dat je op de link in de video moet klikken om naar YouTube te gaan en te bewijzen dat je volwassen bent.

Vanaf 27 februari verkrijgbaar

Resident Evil Requiem verschijnt op 27 februari (pre-orderen kan nu al) voor PlayStation 5, Xbox Series X en S, Nintendo Switch 2 en pc. Het is het negende hoofddeel in de horrorserie die al sinds de jaren negentig bestaat. In de loop der jaren is de franchise meermaals flink op de schop gegaan. Zo richtte Resident Evil 4 zich meer op actie, en zijn horrorelementen sinds Resident Evil 7: Biohazard weer teruggekeerd. Resident Evil Requiem lijkt dan ook een combinatie van al deze elementen te gaan bieden.

Op 27 februari zullen overigens ook Resident Evil 7 en Resident Evil Village (het achtste deel) op Nintendo Switch 2 uitkomen. Daarnaast verschijnt Village later deze maand op PlayStation Plus en Xbox Game Pass.

Watch on YouTube
▼ Volgende artikel
Slechte wifi thuis? Dit zijn de 3 grootste wifi-fouten die je signaal verpesten
© chadchai - stock.adobe.com
Huis

Slechte wifi thuis? Dit zijn de 3 grootste wifi-fouten die je signaal verpesten

Je kijkt een spannende serie en opeens bevriest het beeld. Dat bekende draaiende cirkeltje… er zijn weinig dingen zó frustrerend. Gelukkig ligt de oplossing vaak binnen handbereik. De snelheid van je internet hangt namelijk sterk samen met de manier waarop je thuis met je apparatuur omgaat. Door een paar veelgemaakte fouten te vermijden en de juiste techniek te kiezen, merk je vaak direct dat je netwerk stabieler wordt, zonder dat daar een duurder abonnement voor nodig is.

In het kort

In dit artikel lees je welke drie wifi-fouten het vaakst zorgen voor traag internet of haperingen: een onhandige plek voor je router, drukte op 2,4 GHz en verouderde firmware of hardware. Je ziet ook hoe je zelf een rustiger kanaal vindt en wanneer het slim is om te kiezen voor 5 GHz of 6 GHz. Tot slot leggen we uit wat wifi 6 en wifi 7 doen en waarom een netwerkkabel van minimaal cat5e verschil kan maken.

Lees ook: Router of powerline-adapter: wat is de beste keuze voor betere wifi?

Fout 1: De router op de verkeerde plek neerzetten

Een router wint qua looks zelden een schoonheidsprijs. De neiging om het apparaat uit het zicht te plaatsen is daarom groot. Toch is een verkeerde locatie de meest gemaakte fout die je bereik merkbaar (en soms zelfs dramatisch) kan verkleinen.

Dat zit zo.  Je kunt wifi-signalen vergelijken met het licht van een gloeilamp. Als je die lamp in een houten kast of achter een dikke bank zet, blijft de rest van de kamer donker. Obstakels zoals muren, meubels en zelfs grote kamerplanten blokkeren de onzichtbare golven. Vooral metaal en water zijn beruchte boosdoeners; een router naast een aquarium of achter een radiator plaatsen is vragen om problemen.

Ook de hoogte is bepalend. Veel mensen zetten de router op de grond, maar op de grond zit het signaal sneller 'achter' meubels en andere blokkades. Zet het apparaat liever op een kast of boekenplank op ooghoogte voor een vrije weg naar je apparaten.

©ID.nl

Fout 2: Storing door andere apparatuur over het hoofd zien

Je staat er waarschijnlijk niet bij stil, maar veel apparaten in huis gebruiken dezelfde onzichtbare digitale snelweg als je internetverbinding. De magnetron, sommige babyfoons en zelfs de draadloze koptelefoon van de buren vechten om een plekje op de 2,4GHz-band. Ook andere wifi-netwerken in de buurt kunnen voor digitale files zorgen.

De meeste moderne routers ondersteunen gelukkig ook de 5GHz-frequentie. Deze band is veel breder en heeft minder last van andere apparatuur. Het handmatig selecteren van het 5GHz-netwerk levert vaak direct een snelheidswinst op. Heb je een router met wifi 6e of wifi 7, dan kun je soms ook de 6 GHz-band gebruiken. Die is vaak rustiger, maar het bereik is meestal wat kleiner dan bij 5 GHz.

Tip: geef je netwerken duidelijke namen

Veel routers zenden meerdere wifi-netwerken tegelijk uit: 2,4 GHz voor bereik, 5 GHz voor snelheid en soms ook 6 GHz voor extra ruimte in drukke omgevingen. Als al die banden onder één naam vallen, kiest je smartphone of laptop automatisch. Dat gaat vaak goed, maar niet altijd: je toestel kan blijven “plakken” aan 2,4 GHz terwijl 5 GHz op dat moment sneller en stabieler is.

Door je netwerken een herkenbare naam te geven, maak je de keuze simpel. Geef de 2,4 GHz-band bijvoorbeeld de naam thuis-2g, de 5 GHz-band thuis-5g en, als je die hebt, de 6 GHz-band thuis-6g. Dan zie je in één oogopslag welk netwerk je pakt. Zit je ver van de router, dan is 2,4 GHz vaak de veiligste optie. Zit je dichtbij en wil je vooral snelheid, dan ligt 5 GHz of 6 GHz meer voor de hand. Zo kun je bij haperingen of traag internet meteen testen of een andere band het probleem oplost, zonder dat je in instellingen hoeft te graven.

View post on TikTok

Fout 3: Verouderde software en hardware blijven gebruiken

Technologie verandert razendsnel en dat geldt ook voor de beveiliging en snelheid van je netwerk. Veel huishoudens werken nog met de router die ze jaren geleden bij hun eerste abonnement kregen. Deze oude techniek kan de moderne eisen van streaming en videobellen simpelweg niet meer bijbenen. Daarnaast vergeten veel gebruikers om de firmware van hun apparaat te updaten. Fabrikanten brengen deze software-updates uit om prestaties te verbeteren en lekken te dichten. Een verouderd systeem is niet alleen trager, maar ook een makkelijker doelwit voor hackers.


1️⃣2️⃣3️⃣Stappenplan: de beste wifi-kanalen scannen

Als je buren ook allemaal op hetzelfde wifi-kanaal zitten, ontstaat er interferentie. Je kunt dit zelf eenvoudig oplossen door een rustiger kanaal te zoeken.

1) Download een app zoals WiFi Analyzer (Android) of NetSpot (Windows, macOS, Android & iOS).

2) Open de app en bekijk de grafiek van de omgeving. Je ziet hier welke kanalen drukbezet zijn door netwerken in de buurt. Noteer het kanaalnummer dat het minst wordt gebruikt. Vaak zijn kanaal 1, 6 of 11 op de 2,4GHz-band de beste keuzes.

3) Log in op de webinterface van je router via je browser (meestal via een adres als 192.168.1.1). Zoek naar de draadloze instellingen en wijzig het kanaal van 'Automatisch' naar het door jou gekozen nummer. Sla de instellingen op en test of je verbinding stabieler aanvoelt.

Het verschil tussen wifi 6 en wifi 7

Sta je op het punt om een nieuwe router of laptop te kopen? Dan kom je de termen wifi 6 en wifi 7 tegen. Wifi 6 was een grote stap vooruit omdat het beter omgaat met veel apparaten tegelijk op één netwerk. Het zorgt voor een efficiëntere verdeling van de data. Wifi 7 is de allernieuwste standaard en gaat nog een flinke stap verder. Het maakt gebruik van extreem brede kanalen en kan verbinding maken via meerdere frequenties tegelijkertijd. Dit wordt Multi-Link Operation genoemd. Hierdoor is de vertraging merkbaar lager en kun je hogere snelheden halen, vooral op korte afstand en met geschikte apparaten. Voor een gemiddeld huishouden is wifi 6 momenteel een uitstekende keuze, terwijl wifi 7 echt voor de toekomst is gebouwd.

Heel belangrijk: de juiste bekabeling

Draadloos internet begint voor de meeste mensen bij een kabel: heb je een los modem en een losse router, dan vormt de kabel ertussen de basis. Gebruik je hier een oude kabel, dan wordt de snelheid al beperkt voordat het signaal de lucht in gaat. Controleer of er Cat 5e, Cat6 of Cat6a op de kabel staat, dan zit je meestal goed. Cat5 haalt soms maar 100 Mbps door kwaliteit/afmontage. Heb je cat5 liggen? Vervang dat dan in ieder geval door cat5e; dat is een veilige keuze voor gigabit. Een kleine investering in een kwalitatieve netwerkkabel kan een wereld van verschil maken voor de uiteindelijke wifi-snelheid op je telefoon.

Slechte wifi? Oplossen is makkelijker dan je denkt

Alles bij elkaar komt goed wifi minder neer op toeval dan veel mensen denken. Met een slimme plek voor je router, een rustige frequentie en actuele software haal je vaak al verrassend veel winst. Combineer dat met een fatsoenlijke netwerkkabel en je voorkomt dat de dat de verbinding al beperkt wordt voordat het signaal draadloos wordt verspreid. Door deze stappen een voor een toe te passen, los je de meest voorkomende wifi-problemen op zonder dat een duurder internetabonnement nodig is, en maak je van een haperende verbinding weer een stabiele basis voor alles wat je online doet.

Consumenten testen: TP-Link Deco BE25 WiFi 7 mesh set

Op Review.nl, het testplatform waarop consumenten nieuwe technologie uitproberen en hun bevindingen delen, krijgt de TP-Link Deco BE25, een router met dualband wifi 7,  een stevige 8,7 op Review.nl. En dat betekent iets: want omdat op Review.nl producten getest worden door een panel van echte gebruikers, zie je hoe iets in een normaal huishouden presteert.

Wat opvalt is hoe vaak testers terugkomen op de snelheid en stabiliteit. De overstap naar wifi 7 levert volgens veel gebruikers merkbaar meer rust in het netwerk op, vooral in huizen waar voorheen op zolder, in de tuin of achterin de woonkamer nauwelijks een bruikbaar signaal was. De Deco BE25 vult dat soort gaten zichtbaar op. Apparaten blijven stabiel verbonden, streamen gaat zonder haperingen en ook gamers merken volgens de testers dat de latency laag blijft. Wie een gigabitverbinding heeft, ziet die snelheid nu ook daadwerkelijk terug op plekken waar dat eerst niet haalbaar was.

Een tweede punt dat veel lof krijgt, is de installatie. De meeste testers spreken over een proces van enkele minuten. De app begeleidt je stap voor stap, herkent automatisch de nieuwe units en geeft advies over de beste plek voor elk wifipunt. Daardoor voelt het hele systeem toegankelijk, ook voor wie zichzelf niet technisch vindt. Eenmaal ingesteld blijkt het netwerk bovendien weinig onderhoud nodig te hebben: de app verdeelt verkeer slim, laat je apparaten prioriteren en biedt opties voor gastnetwerken en ouderlijk toezicht.

Het ontwerp en de functionaliteit leveren wel discussie op. Een deel van de testers vindt de units wat groot en mist montageopties of extra ethernetpoorten. Ook melden sommige gebruikers dat smartphones niet altijd direct naar het dichtstbijzijnde wifipunt schakelen. Toch wordt dat in de meeste reviews gezien als een detail naast de verbeterde dekking en het gemak van dagelijks gebruik.

Alles bij elkaar laat het testpanel zien dat de Deco BE25 vooral scoort op prestaties waar consumenten echt iets van merken: hogere snelheden, betere dekking en een probleemloos installatieproces. Voor veel huishoudens voelt het als een upgrade die een onrustig wifi-netwerk verandert in een betrouwbaar en snel geheel.