Eersteklasfuncties in Python

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.
Voorgestelde quiz Quiz bewerken 8 vragen

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.

Uitleg:


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.

Uitleg:


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

Uitleg:

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

Uitleg:

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

Uitleg:

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.

Uitleg:


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

Uitleg:

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

Uitleg:

Eersteklas burgers zijn, betekent dat functies kunnen worden toegewezen, doorgegeven en geretourneerd, net als andere objecten.

Eersteklasfuncties in PythonQuiz succesvol afgerond Jouw score:   2 /8 Nauwkeurigheid :  0% Log in om uitleg te bekijken 1 /8 1 /8 < Previous Volgende >