0Pricing
Python Academy · Leçon

Les fonctions comme objets de première classe

Comprenez les fermetures et le passage de fonctions comme arguments.

Les fonctions comme objets 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.

Introduction

En Python, les fonctions sont des objets de première classe : elles peuvent être transmises comme arguments, renvoyées et stockées dans des structures de données.

Les fonctions sont des objets

def double(x): return x*2 crée un objet fonction. double n’est qu’un nom. Vous pouvez lui attribuer un autre nom : fn = double ; fn(5) fonctionne.
def double(x): return x * 2
fn = double
print(fn(5))
print(type(fn))

Transmettre des fonctions comme arguments

def apply(func, val): return func(val) — func est un argument appelable. Il s’agit de programmation d’ordre supérieur.
def apply(func, val): return func(val)
print(apply(abs, -7))
print(apply(str, 42))

Stocker des fonctions dans des conteneurs

ops = [add, sub, mul] stocke des objets fonction dans une liste. Parcourez-la et appelez-les : for op in ops: op(a, b).
ops = [str.upper, str.lower, str.strip]
for op in ops:
    print(op('  Hello  '))

Renvoyer des fonctions

Une fonction peut en renvoyer une autre. def make_adder(n): def adder(x): return x+n; return adder
def make_adder(n):
    def adder(x): return x + n
    return adder
add10 = make_adder(10)
print(add10(5), add10(20))

Fermetures

Une fermeture capture des variables de la portée englobante. La fonction interne « ferme sur » n dans make_adder.
def counter(start=0):
    count = [start]
    def inc():
        count[0] += 1
        return count[0]
    return inc
c = counter()
print(c(), c(), c())

Lambda comme fonction anonyme

lambda x: x*2 est une fonction anonyme à une seule expression. C’est utile pour les fonctions de rappel courtes, mais donnez-lui un nom si la logique n’est pas triviale.
nums = [3, 1, 4, 1, 5]
print(sorted(nums, key=lambda x: -x))

map() et filter()

map(func, iterable) applique func à chaque élément. filter(pred, iterable) conserve les éléments pour lesquels pred vaut True.
nums = [1, 2, 3, 4, 5]
print(list(map(lambda x: x**2, nums)))
print(list(filter(lambda x: x%2==0, nums)))

functools.reduce()

reduce(func, seq) replie une séquence : reduce(lambda a,b: a+b, [1,2,3,4]) donne 10.
from functools import reduce
print(reduce(lambda a,b: a*b, [1,2,3,4,5]))

Vérification d’appelabilité

callable(obj) renvoie True si obj peut être appelé. Les fonctions, les classes et les objets qui possèdent __call__ sont appelables.
print(callable(print))
print(callable(42))
class C:
    def __call__(self): pass
print(callable(C()))

Introspection des fonctions

func.__name__, func.__doc__, func.__annotations__, inspect.signature(func) fournissent des métadonnées sur la fonction.
import inspect
def greet(name: str) -> str:
    '''Returns a greeting.'''
    return f'Hi {name}'
print(greet.__name__, greet.__annotations__)
print(inspect.signature(greet))

Vérification rapide

Qu’est-ce qu’une fermeture en Python ?

Récapitulatif

Les fonctions sont des objets de première classe. Transmettez-les comme arguments, renvoyez-les depuis des fonctions et stockez-les dans des conteneurs. Les fermetures capturent la portée englobante. Utilisez lambda pour les fonctions courtes sur une seule ligne.

Continuez

Vos progrès sont excellents ! Continuez pour maîtriser le prochain concept.

Questions Fréquemment Posées

La leçon « Les fonctions comme objets de première classe » est-elle gratuite ?

Oui — le texte complet de « Les fonctions comme objets 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 « Les fonctions comme objets de première classe » ?

Comprenez les fermetures et le passage de fonctions comme arguments. 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 « Les fonctions comme objets 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. Les fonctions comme objets de première classe
  2. Écrire des décorateurs personnalisés
  3. Le décorateur @property
  4. @classmethod et @staticmethod
← Retour à Python Academy