Ga naar hoofdinhoud

3.2 Zijn acties functies?

Wat moet je al weten

Nu zul je denken, zijn acties niet gewoon hetzelfde als de functies die we eerder gezien hebben?

Spel laden...

Oftewel, is distance_to() niet gewoon een functie? Het antwoord is: ja en nee.

Voorbeeld van een Python functie:

Het doel van een functie is om een aantal Python-commando's te bundelen, zodat je niet elke keer dezelfde regels code hoeft te typen:

Spel laden...

Kijk in het console-paneel onder het scherm — daar zie je de uitvoer van print().

Een vraag: hoeveel regels code komen erbij als je ook "Happy birthday" willen zingen voor de tweelingzus Rachel?

Klik hier voor het antwoord

Slechts één. De functie wordt maar één keer gedefinieerd. Daarna heb je iedere keer maar één regel code nodig om de functie aan te roepen.

Spel laden...

En een methode?

Wat we veel gebruiken in coderius-play is een functie, maar die is dan vastgeplakt aan bijvoorbeeld een vorm. Dit noemen we een methode:

Spel laden...

In dit voorbeeld zit de methode distance_to() vast aan het cirkel-object. Wanneer we cirkel.distance_to(blok) uitvoeren, weet Python dat de afstand specifiek vanaf deze ene cirkel moet worden berekend.

Opdracht 3.2.a: Functie of methode?

Hieronder zie je een programma met vier verschillende aanroepen. Bekijk de code en probeer voor jezelf te beantwoorden: welke zijn functies en welke zijn methodes?

import play

cirkel = play.new_circle(x=-100)
blok = play.new_box(x=100)

afstand = cirkel.distance_to(blok)
print(afstand)
willekeurig = play.random_number(1, 10)
cirkel.hide()
Klik hier voor een tip.

Kijk goed naar de punt (.). Wat staat er vóór de punt, en wat erna?

Klik hier voor het antwoord
  • play.new_circle(x=-100) — functie van de play-bibliotheek
  • play.new_box(x=100) — functie van de play-bibliotheek
  • cirkel.distance_to(blok) — methode, vastgeplakt aan het cirkel-object
  • print(afstand) — functie (een ingebouwde Python-functie, geen punt ervoor)
  • play.random_number(1, 10) — functie van de play-bibliotheek
  • cirkel.hide() — methode, vastgeplakt aan het cirkel-object

Een vuistregel: staat er een variabele (zoals cirkel) gevolgd door een punt, dan is het een methode. Staat er alleen play. of een woord op zichzelf, dan is het een functie.