Python Academy · Les

Functies als first-class objects

Geef functies door en retourneer ze

Les 1 van 413 stappen

Functies als first-class objects is een gratis Python Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Python Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Python Academy bevat in totaal 4 lessen.

Functies zijn objecten

In Python zijn functies eersteklasobjecten. Je kunt ze aan variabelen toewijzen, in datastructuren opslaan, als argumenten doorgeven en door andere functies laten retourneren — net als getallen of tekenreeksen.

def greet():
    return 'hi'
print(type(greet))
print(greet())

Functies aan variabelen toewijzen

Een functienaam is alleen een verwijzing. Wijs die toe aan een andere naam en roep de functie via die naam aan — gebruik geen haakjes wanneer je naar de functie zelf verwijst.

def shout(text):
    return text.upper()
yell = shout
print(yell('hello'))

Functies in datastructuren

Je kunt functies in lijsten of woordenboeken opslaan en ze vervolgens dynamisch opzoeken en aanroepen.

def add(a, b):
    return a + b
def sub(a, b):
    return a - b
ops = {'+': add, '-': sub}
print(ops['+'](10, 4))
print(ops['-'](10, 4))

Functies als argumenten doorgeven

Een functie die een andere functie als parameter accepteert, heet een functie van hogere orde. De doorgegeven functie is het argument.

def apply(func, value):
    return func(value)
print(apply(str.upper, 'cat'))
print(apply(len, 'cat'))

map gebruikt eersteklasfuncties

Ingebouwde functies zoals map berusten op het doorgeven van functies. Hier wordt een functie op elk element toegepast.

def square(n):
    return n * n
result = list(map(square, [1, 2, 3, 4]))
print(result)

filter neemt een predicaat

filter houdt de elementen waarvoor de doorgegeven functie True retourneert. De functie bepaalt wat behouden blijft.

def is_even(n):
    return n % 2 == 0
print(list(filter(is_even, range(10))))

Een functie retourneren

Een functie kan een andere functie retourneren. Je kunt de geretourneerde functie vervolgens afzonderlijk aanroepen.

def get_greeter():
    def greeter(name):
        return 'Hello ' + name
    return greeter
f = get_greeter()
print(f('Ada'))

Functies als sorteersleutels

sorted accepteert een key-functie die elk element omzet in een waarde die voor de volgorde wordt gebruikt.

words = ['banana', 'fig', 'cherry']
by_length = sorted(words, key=len)
print(by_length)

Lambda's als snelle functies

Een lambda is een kleine anonieme functie. Die is ideaal voor eenmalig gebruik als argument.

nums = [5, 1, 4, 2]
print(sorted(nums, key=lambda x: -x))

Functies hebben attributen

Omdat functies objecten zijn, hebben ze attributen zoals __name__ en een docstring in __doc__.

def hello():
    'Says hello.'
    return 'hi'
print(hello.__name__)
print(hello.__doc__)

Een dispatchtabel bouwen

Door deze ideeën te combineren kun je een nette dispatchtabel bouwen die op naam een functie kiest — zonder lange if/elif-ketens.

def start():
    return 'starting'
def stop():
    return 'stopping'
actions = {'start': start, 'stop': stop}
command = 'start'
print(actions[command]())

Korte controle

Wat betekent het dat functies in Python 'eersteklas' zijn?

Samenvatting: eersteklasfuncties

Je hebt geleerd dat in Python:

  • functies objecten zijn die je kunt toewijzen, opslaan, doorgeven en retourneren;
  • functies van hogere orde andere functies accepteren of retourneren (map, filter, de key van sorted);
  • lambda snelle anonieme functies maakt;
  • je hiermee nette dispatchtabellen kunt maken in plaats van lange voorwaardelijke constructies.
ops = {'double': lambda x: x * 2}
print(ops['double'](21))
Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
76
Lessen
320

Veelgestelde vragen

Is de les “Functies als first-class objects” gratis?

Ja — de volledige tekst van “Functies als first-class objects” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Python Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Python Academy bevat in totaal 4 lessen.

Wat leer ik in “Functies als first-class objects”?

Geef functies door en retourneer ze Je oefent met Python Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Python Academy te beginnen?

Ervaring vooraf is niet nodig. Python Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Functies als first-class objects”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Python Academy?

Ja. Elke les over Python Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Functies als first-class objects
  2. Closures en vrije variabelen
  3. nonlocal en veranderlijke status
  4. Partiële functies
← Terug naar Python Academy