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.