0Pricing
Python Academy · Leçon

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é de sorted).
  • lambda cré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

  1. Fonctions de première classe
  2. Fermetures et variables libres
  3. nonlocal et état mutable
  4. Fonctions partielles
← Retour à Python Academy