Fonctions de première classe
Passer et retourner des fonctions
Fonctions de première classe est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.
Les fonctions sont des objets
En Python, les fonctions sont des objets de première classe. Vous pouvez les affecter à des variables, les stocker dans des structures de données, les transmettre comme arguments et les renvoyer depuis d'autres fonctions, exactement comme des nombres ou des chaînes.
def greet():
return 'hi'
print(type(greet))
print(greet())Affecter des fonctions à des variables
Le nom d'une fonction n'est qu'une référence. Affectez-le à un autre nom et appelez la fonction par ce nom : sans parenthèses lorsque vous faites référence à la fonction elle-même.
def shout(text):
return text.upper()
yell = shout
print(yell('hello'))Les fonctions dans les structures de données
Vous pouvez stocker des fonctions dans des listes ou des dictionnaires, puis les rechercher et les appeler dynamiquement.
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))Transmettre des fonctions comme arguments
Une fonction qui prend une autre fonction comme paramètre est appelée une fonction d'ordre supérieur. La fonction transmise est l'argument.
def apply(func, value):
return func(value)
print(apply(str.upper, 'cat'))
print(apply(len, 'cat'))Les fonctions de première classe avec la transformation
Les fonctions intégrées comme map reposent sur la transmission de fonctions. Ici, une fonction est appliquée à chaque élément.
def square(n):
return n * n
result = list(map(square, [1, 2, 3, 4]))
print(result)Le filtrage prend un prédicat
filter conserve les éléments pour lesquels la fonction transmise renvoie True. La fonction détermine ce qui est conservé.
def is_even(n):
return n % 2 == 0
print(list(filter(is_even, range(10))))Renvoyer une fonction
Une fonction peut en renvoyer une autre. La fonction renvoyée peut ensuite être appelée séparément.
def get_greeter():
def greeter(name):
return 'Hello ' + name
return greeter
f = get_greeter()
print(f('Ada'))Les fonctions comme clés de tri
sorted accepte une fonction key qui associe à chaque élément une valeur utilisée pour le classement.
words = ['banana', 'fig', 'cherry']
by_length = sorted(words, key=len)
print(by_length)Les fonctions anonymes pour des besoins ponctuels
Une lambda est une petite fonction anonyme. Elle est idéale pour une utilisation ponctuelle comme argument.
nums = [5, 1, 4, 2]
print(sorted(nums, key=lambda x: -x))Les fonctions ont des attributs
Comme les fonctions sont des objets, elles possèdent des attributs tels que __name__ et une chaîne de documentation dans __doc__.
def hello():
'Says hello.'
return 'hi'
print(hello.__name__)
print(hello.__doc__)Construire une table de sélection
En combinant ces idées, vous pouvez construire une table de sélection claire qui choisit une fonction par son nom, sans longues chaînes de conditions if/elif.
def start():
return 'starting'
def stop():
return 'stopping'
actions = {'start': start, 'stop': stop}
command = 'start'
print(actions[command]())Vérification rapide
Que signifie le fait que les fonctions soient « de première classe » en Python ?
Récapitulatif : fonctions de première classe
Vous avez appris qu'en Python :
- Les fonctions sont des objets que vous pouvez affecter, stocker, transmettre et renvoyer.
- Les fonctions d'ordre supérieur prennent d'autres fonctions ou en renvoient (
map,filter, la clé desorted). lambdacrée rapidement des fonctions anonymes.- Cela permet de construire des tables de sélection claires plutôt que de longues conditions.
ops = {'double': lambda x: x * 2}
print(ops['double'](21))Questions Fréquemment Posées
La leçon « Fonctions de première classe » est-elle gratuite ?
Oui — le texte complet de « Fonctions de première classe » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Fonctions de première classe » ?
Passer et retourner des fonctions Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Python Academy ?
Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Fonctions de première classe » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?
Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Fonctions de première classe
- Fermetures et variables libres
- nonlocal et état mutable
- Fonctions partielles