python-function-hoe-werkt-python-function

De Python function is een van de meest fundamentele bouwblokken die je als Data Scientist tot je beschikking hebt binnen Python. Als je Python leert is kennis opdoen van functions daarom essentieel.

Deze pagina is een volledige handleiding over Python functions met onderstaande inhoud

Wat is een Python function?

Een Python function is een samenhangend stukje code dat een specifieke taak uitvoert. Je voert een input in, vervolgens voert de functie de taak uit en geeft een bepaalde output terug.

Python functions zijn zo handig om de volgende redenen:

  1. Functies zijn herbruikbaar. Als je een specifieke taak vaker uit moet voeren dan leveret het gebruik van functies je veel tijdswinst op.
  2. Functies breken grote programma's of modellen op in kleinere delen. Dit maakt lange stukken code overzichtelijker en makkelijker te begrijpen. Zelfs bijvoorbeeld complexe machine learning modellen zijn dankzij functies relatief makkelijk te doorgronden.
  3. Binnen Python functions heb je veel meer mogelijkheden dan binnen Excel functies.
Met vertrouwen waardevolle inzichten halen uit data? Schrijf je in voor een van onze Python trainingen.


Welke ingebouwde functions heeft Python?

Er is standaard een aantal Python functions ingebouwd. Het is goed om je bewust te zijn van de ingebouwde mogelijkheden van Python.

Ingebouwde functies zijn over het algemeen basale functies als het optellen van waarden met sum(), het creëren van een lijst met list(), of het aanpassen van data types van variables met bijvoorbeeld int(), float(), of str().

Als beginnen Data Scientist is het vanwege de brede toepasbaarheid van ingebouwde functies goed om de documentatie goed door te nemen.

Een ander argument om de built in functies te kennen is omdat er conflicten op kunnen treden als je eigen functies in het leven roept met dezelfde naam als built-in functies. Echter, in de meeste software krijgen ingebouwde functies een highlight-kleur waardoor je ze makkelijk herkent.

python functions built in
Overzicht van Python functions die ingebouwd zijn uit de documentatie van Python

Wanneer je bepaalde Python packages importeert komen er nieuwe functies vanuit het package beschikbaar. Bekijk dus ook altijd goed de documentatie die hoort bij verschillende data science packages.

python function opbouw

Hoe is een Python function opgebouwd

In bovenstaande afbeelding staat een voorbeeldfunctie waarbij de volgende elementen zijn genummerd:

  1. De term def gebruik je om een functie header te starten. Je sluit de header altijd af met een dubbelepunt.
  2. De functienaam is een unieke naam voor de functie waarmee deze aangeroepen kan worden.
  3. Tussen haakjes zet je nul, één of meerdere parameters (ook wel input variabelen genoemd).
  4. Dan volgt de body van de functie. Hier voert de functie de specifieke taak uit en worden de argumenten die zijn ingegeven omgezet in een bepaalde output.
  5. Met een return statement geeft je een output waarde uit een functie.
  6. Na start van de functie spring je steeds 4 spaties in totdat de functie eindigt.

Keyword arguments vs. positional arguments

We kunnen de argumenten in een functie op verschillende manieren ingeven. Als voorbeeld nemen we de volgende functie:

def twee_kwadraten_aftrekken(a,b):
kwadraat_1 = a * a
kwadraat_2 = b * b
return kwadraat_1 - kwadraat_2

Je kunt op twee manieren argumenten in deze functie stoppen:

  1. twee_kwadraten_aftrekken(a=10,b=100) en twee_kwadraten_aftrekken(b=100,a=10) zullen hetzelfde resultaat geven, namelijk -9900. We noemen dit keyword arguments omdat duidelijk aangegeven wordt welk argument bij welke parameter hoort.
  2. Het is ook mogelijk om positional arguments te gebruiken. Je geeft een argument in en op basis van de positie gaat de functie er op een bepaalde manier mee om. twee_kwadraten_aftrekken(10,100) en twee_kwadraten_aftrekken(100,10) zullen dus wel degelijk andere antwoorden geven, namelijk -9900 en 9900. Bij positional arguments hoef je minder te schrijven waardoor je sneller kunt programmeren en code sneller kan runnen. Het vergt echtere wel oplettendheid.
Met vertrouwen waardevolle inzichten halen uit data? Schrijf je in voor een van onze Python trainingen.


Meerdere return variabelen of meerdere return statements

Stel je wilt meerdere variabelen als output uit jouw Python function, hoe doe je dat? Dat is eigenlijk vrij simpel. Je kunt gewoon twee variabelen achter jouw return statement zetten, gescheiden met een comma.

python functie met meerdere return variabelen
Twee return variables uit een Python function (screenshot uit Jupyter Notebook)

Daarnaast is het ook mogelijk om meerdere return statements op te nemen in één functie. Dit geeft je meer flexibiliteit in de output van de functie.

Stel je wilt het zelf in de hand hebben of de twee kwadraten uit bovenstaande functie gesorteerd worden van klein naar groot. Dat kun je doen door meerdere return statements in je functie op te nemen.

python function met meerdere return statements
Meerdere return statements in één Python function

Global en local scope

Wanneer je werkt met functies is het goed om het onderscheid tussen global en local scope te begrijpen. Het zit namelijk zo dat variabelen die je in een functie definieert in een tijdelijk geheugen worden opgeslagen. Dit geheugen wordt gewist wanneer de functie volledig gerund is. Om deze reden zijn variabelen van binnen een functie niet beschikbaar buiten een functie. Dit noemt men ook wel 'memory isolation'.

Het omgekeerde is wat ingewikkelder. Variabelen uit de global scope kunnen wel beschikbaar zijn in een functie (local scope). Het is echter zo dat Python altijd eerst binnen de functie kijkt of de variabele is gedefinieerd. Is dit niet zo dan zoekt Python in de global scope of de variabele bekend is. Als een variabele zowel in de local scope als in de global scope beschikbaar is dan geeft Python prioriteit aan de local scope, dus binnen de Python function.

Memory isolation is handig omdat je bij grotere programma's vaak niet meer weet welke variabelen allemaal bestaan in het volledige programma (global scope). Je kunt met een gerust hart nieuwe variabelen introduceren in functies en deze worden dan alleen binnen de functie gebruikt (local scope).

Jezelf als data scientist en Python expert ontwikkelen?

Wil jij snel op stoom zijn als data scientist en Python expert? Krijg in twee dagen vertrouwen in het analyseren van data met Python. Schrijf je in voor onze Python cursus voor data science en ontwikkel je onder begeleiding van ervaren trainers succesvol verder als data scientist.

 

by: