Python buiten de browser
Een draaiende Python heeft geheugen
Aan het einde van deze cursus heb je een project op je eigen computer, met een eigen omgeving, eigen tests en instructies die goed genoeg zijn om iemand anders het te laten uitvoeren. Onderweg maak je kennis met de terminal, pakketbeheer, echte bestanden en een dienst die soms opzettelijk faalt.
We beginnen wel klein. Eerst is één achterliggend idee de moeite waard om helder te krijgen: wat voert je code werkelijk uit, en wat gebeurt er met alles wat het onthoudt als het stopt?
Twee nuttige woorden
Python-code is een verzameling instructies. De Python-interpreter is het programma dat die instructies leest en uitvoert. Het is een echt programma op een echte computer, net als een teksteditor of een browser.
Terwijl het draait, geeft de computer dat werk wat geheugen om dingen bij te houden. Eén draaiende instantie van een programma, samen met het tijdelijke geheugen, is een proces.
Je hebt hier geen details over besturingssystemen nodig. Het onderscheid dat ertoe doet is kleiner en praktischer: opgeslagen instructies kunnen blijven bestaan, terwijl het geheugen van één uitvoering verdwijnt als die uitvoering eindigt.
Kijk hoe een naam verdwijnt
Het paneel naast deze les is een REPL: een Python-interpreter die telkens op één regel wacht. De prompt >>> betekent dat die klaar is. Het is geen shell en ook geen Python-installatie op je computer. De lokale inrichting begint in hoofdstuk 3.
Typ dit en druk op Enter:
message = "ready"
Typ nu alleen de naam en druk op Enter:
message
De interpreter toont 'ready'. Hij heeft het onthouden.
Druk nu op Restart (opnieuw starten) in de REPL en vraag nogmaals om message.
Deze keer vertelt Python dat de naam niet is gedefinieerd. Er is niets stuk. Die herstart beëindigde één proces en startte een nieuw proces dat jouw naam nooit heeft gekend. Het geheugen verdween met de uitvoering.
Probeer het desgewenst nog een paar keer met andere waarden. Het is iets kleins om te bekijken, maar het verklaart later verrassend veel: waarom een programma tussen uitvoeringen niets kan onthouden tenzij je daar bewust voor zorgt, en waarom “het werkte een minuut geleden” soms betekent “het werkte in een proces dat niet meer bestaat”.
Maak kennis met Monty
Monty is de ingebouwde AI-leerhulp van Python Land. Dit is een goed moment om hem te introduceren, want de manier waarop je een vraag stelt doet er meer toe dan de meeste mensen verwachten.
Een vage vraag krijgt een vaag antwoord. Probeer deze, die concreet genoeg is om nuttig te zijn:
Vraag Monty: “Waarom verdwijnt
messageals ik de REPL herstart, maar de code die ik in de editor typ niet?”
Die vraag noemt wat je deed, wat je verwachtte en wat je verraste. Die drie dingen maken het mogelijk dat iemand, mens of anderszins, je werkelijk helpt.
Monty is in dit hele hoofdstuk gratis. Gebruik hem hier dus gerust om een gevoel te krijgen voor goede vragen. Vanaf hoofdstuk 2 hoort volledige ondersteuning door Monty bij het Guided-abonnement. Je kunt de cursus volledig zonder volgen; alles wat je nodig hebt staat in de lessen zelf. Guided biedt een tweede uitleg als de eerste niet aankwam en een hint wanneer je om elf uur 's avonds vastzit en niemand iets kunt vragen.
Je definieert message = "ready" in de REPL, herstart die en vraagt opnieuw om message. Waarom is de naam niet gedefinieerd?
Welk paar uitspraken klopt?
De volgende les bewaart de instructies in plaats van afhankelijk te zijn van het geheugen van één sessie.