← retour aux snippets

inspect.signature: introspecter les fonctions

Lire les paramètres et valeurs par défaut pour validation/CLI.

python introspection #inspect#signature#introspection

objectif

Lire les paramètres et valeurs par défaut pour validation/CLI.

code minimal

import inspect
def f(a, b=1, *args, c:int=2, **kw): pass
sig = inspect.signature(f)
names = [p.name for p in sig.parameters.values()]
print("a" in names and "c" in names)  # attendu: True

utilisation

import inspect
def add(x:int, y:int=1) -> int: return x+y
sig = inspect.signature(add)
print(sig.return_annotation is int)

variante(s) utile(s)

import inspect
def g(x, *, y=0): pass
params = inspect.signature(g).parameters
print(params["y"].kind.name == "KEYWORD_ONLY")

notes

  • Utile pour générer des wrappers, CLIs et validations automatiques.
  • Combinez avec get_annotations pour récupérer les types.