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.
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.
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é.
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
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
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
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.
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
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
Être des citoyens de première classe signifie que des fonctions peuvent être attribuées, transmises et restituées comme les autres objets.
Quiz terminé avec succès Votre score : 2 /8 Précision : 0% Connectez-vous pour voir l'explication 1 /8 1 /8 < Previous Suivant >