Eersteklasfuncties in Python
In Python worden functies behandeld als eersteklas objecten. Dit betekent dat ze net als getallenreeksen of andere variabelen kunnen worden gebruikt. U kunt:
- Wijs functies toe aan variabelen.
- Geef ze door als argumenten aan andere functies.
- Retourneer ze vanuit functies.
- Bewaar ze in datastructuren zoals lijsten of woordenboeken.
Met deze mogelijkheid kunt u herbruikbare modulaire en krachtige code schrijven.
Kenmerken van eersteklas functies
Functies in Python hebben de volgende belangrijke kenmerken. Laten we ze een voor een bekijken met voorbeelden:
1. Functies aan variabelen toewijzen
Wij kunnen wijs een functie toe aan een variabele en gebruik de variabele om de functie aan te roepen.
Voorbeeld:
Python def msg ( name ): return f 'Hello { name } !' # Assigning the function to a variable f = msg # Calling the function using the variable print ( f ( 'Emma' ))
Uitvoer
Hello Emma!
Uitleg:
- De functie bericht is toegewezen aan de variabele f.
- Nu kan f worden gebruikt om msg aan te roepen, waaruit blijkt dat functies zich als variabelen gedragen.
2. Functies doorgeven als argumenten
Functies kunnen zijn doorgegeven als argumenten naar andere functies die dit mogelijk maken hogere orde functies .
Voorbeeld:
Python def msg ( name ): return f 'Hello { name } !' def fun1 ( fun2 name ): return fun2 ( name ) # Passing the msg function as an argument print ( fun1 ( msg 'Alex' ))
Uitvoer
Hello Alex!
Uitleg:
- De functie fun1 neemt een andere functie (fun2) als invoer.
- Het bericht wordt doorgegeven aan fun1, die het vervolgens aanroept met 'Alex'.
3. Functies retourneren uit andere functies
Een functie kan een andere functie teruggeven waardoor functiefabrieken kunnen worden gecreëerd.
Voorbeeld:
Python def fun1 ( msg ): def fun2 (): return f 'Message: { msg } ' return fun2 # Getting the inner function func = fun1 ( 'Hello World!' ) print ( func ())
Uitvoer
Message: Hello World!
Uitleg:
- De functie fun1 definieert een andere functie fun2 en retourneert deze.
- func slaat de geretourneerde functie fun2 op, die later kan worden uitgevoerd.
Functies kunnen worden opgeslagen in datastructuren zoals lijsten of woordenboeken .
Voorbeeld:
Python def add ( x y ): return x + y def subtract ( x y ): return x - y # Storing functions in a dictionary d = { 'add' : add 'subtract' : subtract } # Calling functions from the dictionary print ( d [ 'add' ]( 5 3 )) print ( d [ 'subtract' ]( 5 3 ))
Uitvoer
8 2
Uitleg:
- De functies optellen en aftrekken worden opgeslagen in een woordenboek.
- Ze zijn toegankelijk met behulp van hun sleutels en worden direct uitgevoerd.
Welke van de volgende beschrijft het beste een eersteklas functie in programmeertalen?
- A
Een functie die alleen vanuit zijn eigen bereik kan worden aangeroepen.
- B
Een functie die kan worden toegewezen aan variabelen die als argumenten worden doorgegeven en worden geretourneerd door andere functies, zoals elk ander object.
- C
Een functie die alleen op het hoogste niveau van een module kan worden gedefinieerd.
- D
Een functie die alleen in een specifieke context kan worden uitgevoerd.
Wat is een functie van hogere orde in de context van eersteklas functies?
- A
Een functie die alleen primitieve gegevenstypen kan retourneren.
- B
Een functie die andere functies als argumenten kan gebruiken of deze als resultaten kan retourneren.
- C
Een functie die binnen een andere functie is gedefinieerd, maar niet kan worden geretourneerd.
- D
Een functie die in een aparte thread wordt uitgevoerd.
Wat zal de uitvoer zijn van de volgende code?
def groet(naam):
return f'Hallo {naam}'
zeg_hallo = begroeten
print(zeg_hallo('Geek'))
- A
Hallo groet
- B
begroeten
- C
Hallo Geek
- D
TypeError
Aan variabelen kunnen functies worden toegewezen. Hier wordt 'say_hello' een andere verwijzing om te begroeten.
Welke van de volgende is geen eigenschap van eersteklas functies?
- A
Functies kunnen worden opgeslagen in datastructuren
- B
Aan variabelen kunnen functies worden toegewezen
- C
Functies kunnen andere functies retourneren
- D
Functies kunnen alleen primitieve typen retourneren
Eersteklasfuncties kunnen elk type retourneren, inclusief andere functies, niet beperkt tot primitieven.
Wat zal de output van deze code zijn?
zeker buitenste():
def innerlijke():
retourneer 'Innerlijke functie'
terugkeer naar binnen
func = buitenste()
afdrukken(func())
- A
Innerlijke functie
- B
binnen
- C
buitenste
- D
Fout
outside() retourneert de inner-functie en func() roept deze aan en retourneert de string.
Welke van de volgende is GEEN kenmerk van eersteklas functies?
- A
Ze kunnen aan variabelen worden toegewezen.
- B
Ze kunnen als argumenten aan andere functies worden doorgegeven.
- C
Ze kunnen slechts één keer in een programma worden gedefinieerd.
- D
Ze kunnen vanuit andere functies worden geretourneerd.
Wat is de uitvoer van de volgende code?
def make_multiplier(n):
def vermenigvuldiger(x):
retour x * n
vermenigvuldiger terug
dubbel = make_multiplier(2)
afdrukken(dubbel(5))
- A
7
- B
10
- C
25
- D
Fout
make_multiplier(2) retourneert een functie die het argument ervan met 2 vermenigvuldigt. Dus double(5) retourneert 10.
Hoe gaat Python om met functies met betrekking tot variabelen?
- A
Functies zijn statische objecten
- B
Functies zijn constanten en kunnen niet opnieuw worden toegewezen
- C
Functies zijn eersteklas burgers en kunnen worden opgeslagen en opnieuw worden toegewezen
- D
Functies moeten globaal worden gedeclareerd om te kunnen worden gebruikt
Eersteklas burgers zijn, betekent dat functies kunnen worden toegewezen, doorgegeven en geretourneerd, net als andere objecten.
Quiz succesvol afgerond Jouw score: 2 /8 Nauwkeurigheid : 0% Log in om uitleg te bekijken 1 /8 1 /8 < Previous Volgende >