Fonctions de première classe en Python

Fonctions de première classe en Python

En Python, les fonctions sont traitées comme des objets de première classe. Cela signifie qu'ils peuvent être utilisés comme des chaînes de nombres ou toute autre variable. Tu peux:

  • Attribuez des fonctions aux variables.
  • Passez-les comme arguments à d'autres fonctions.
  • Renvoyez-les à partir des fonctions.
  • Stockez-les dans des structures de données telles que des listes ou des dictionnaires.

Cette capacité vous permet d’écrire du code réutilisable, modulaire et puissant.

Caractéristiques des fonctions de première classe

Les fonctions en Python ont les caractéristiques importantes suivantes. Voyons-les un par un avec des exemples :

1. Attribution de fonctions à des variables

Nous pouvons attribuer une fonction à une variable et utilisez la variable pour appeler la fonction.

Exemple:

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'  ))   

Sortir
Hello Emma!  

Explication:

  • La fonction msg est affectée à la variable f.
  • Maintenant, f peut être utilisé pour appeler msg montrant que les fonctions se comportent comme des variables.

2. Passer des fonctions comme arguments

Les fonctions peuvent être passé comme arguments à d'autres fonctions permettant fonctions d'ordre supérieur .

Exemple:

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'  ))   

Sortir
Hello Alex!  

Explication:

  • La fonction fun1 prend une autre fonction (fun2) en entrée.
  • msg est transmis à fun1 qui l'appelle ensuite avec « Alex ».

3. Renvoi de fonctions à partir d'autres fonctions

Une fonction peut renvoie une autre fonction permettant la création d’usines de fonctions.

Exemple:

Python
   def   fun1  (  msg  ):   def   fun2  ():   return   f  'Message:   {  msg  }  '   return   fun2   # Getting the inner function   func   =   fun1  (  'Hello World!'  )   print  (  func  ())   

Sortir
Message: Hello World!  

Explication:

  • La fonction fun1 définit une autre fonction fun2 et la renvoie.
  • func stocke la fonction renvoyée fun2 qui peut être exécutée ultérieurement.

Les fonctions peuvent être stockées dans des structures de données telles que listes ou dictionnaires .

Exemple:

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  ))   

Sortir
8 2  

Explication:

  • Les fonctions d'ajout et de soustraction sont stockées dans un dictionnaire.
  • Ils sont accessibles à l'aide de leurs clés et exécutés directement.
Quiz suggéré Edit Quiz 8 questions

Lequel des énoncés suivants décrit le mieux une fonction de première classe dans les langages de programmation ?

  • UN

    Une fonction qui ne peut être appelée que depuis sa propre portée.

  • B

    Une fonction qui peut être affectée à des variables passées en arguments et renvoyées par d'autres fonctions comme n'importe quel autre objet.

  • C

    Une fonction qui ne peut être définie qu'au niveau supérieur d'un module.

  • D

    Une fonction qui ne peut être exécutée que dans un contexte spécifique.

Explication:


Dans le contexte des fonctions de première classe, qu’est-ce qu’une fonction d’ordre supérieur ?

  • UN

    Une fonction qui ne peut renvoyer que des types de données primitifs.

  • B

    Une fonction qui peut prendre d'autres fonctions comme arguments ou les renvoyer comme résultats.

  • C

    Une fonction définie dans une autre fonction mais qui ne peut pas être renvoyée.

  • D

    Une fonction qui s'exécute dans un thread séparé.

Explication:


Quel sera le résultat du code suivant ?

def saluer (nom):

return f'Bonjour {nom}'


say_hello = saluer

print(say_hello('Geek'))

  • UN

    Bonjour salut

  • B

    saluer

  • C

    Bonjour Geek

  • D

    TypeErreur

Explication:

Des fonctions peuvent être affectées à des variables. Ici, say_hello devient une autre référence à saluer.

Lequel des éléments suivants n’est pas une propriété des fonctions de première classe ?

  • UN

    Les fonctions peuvent être stockées dans des structures de données

  • B

    Les fonctions peuvent être affectées à des variables

  • C

    Les fonctions peuvent renvoyer d'autres fonctions

  • D

    Les fonctions ne peuvent renvoyer que des types primitifs

Explication:

Les fonctions de première classe peuvent renvoyer n'importe quel type, y compris d'autres fonctions, sans se limiter aux primitives.

Quel sera le résultat de ce code ?

def externe() :

def intérieur() :

return 'Fonction interne'

retour intérieur

func = externe()

imprimer(func())

  • UN

    Fonction interne

  • B

    intérieur

  • C

    extérieur

  • D

    Erreur

Explication:

external() renvoie la fonction interne et func() l'appelle en renvoyant sa chaîne.

Lequel des éléments suivants n’est PAS une caractéristique des fonctions de première classe ?

  • UN

    Ils peuvent être affectés à des variables.

  • B

    Ils peuvent être passés en arguments à d’autres fonctions.

  • C

    Ils ne peuvent être définis qu'une seule fois dans un programme.

  • D

    Ils peuvent être renvoyés par d'autres fonctions.

Explication:


Quel est le résultat du code suivant ?

def make_multiplier(n):

multiplicateur déf (x):

retourner x * n

multiplicateur de retour

double = make_multiplier(2)

imprimer(double(5))

  • UN

    7

  • B

    10

  • C

    25

  • D

    Erreur

Explication:

make_multiplier(2) renvoie une fonction qui multiplie son argument par 2. Donc double(5) renvoie 10.



Comment Python traite-t-il les fonctions par rapport aux variables ?

  • UN

    Les fonctions sont des objets statiques

  • B

    Les fonctions sont constantes et ne peuvent pas être réaffectées

  • C

    Les fonctions sont des citoyens de première classe et peuvent être stockées et réaffectées

  • D

    Les fonctions doivent être déclarées globales pour être utilisées

Explication:

Être des citoyens de première classe signifie que des fonctions peuvent être attribuées, transmises et restituées comme les autres objets.

Fonctions de première classe en PythonQuiz terminé avec succès Votre score :   2 /8 Précision :  0% Connectez-vous pour voir l'explication 1 /8 1 /8 < Previous Suivant >