[pyar] Detectando llamadas con cantidad incorrectas de argumentos

Facundo Batista facundobatista en gmail.com
Vie Feb 27 18:13:32 ART 2015


2015-02-27 17:52 GMT-03:00 Daniel Moisset <dmoisset en machinalis.com>:

> if <f, args, kwargs no matchean en argumentos>:
>     loguear(informacion_relevante)
> else:
>     f(*args, **kwargs)
>
> Se les ocurre alguna forma de lograr eso?

¿Tenés "con lo que estarías llamando a la función"? Con eso y con lo
"que la función recibe" podés comparar y decidir.

"Lo que la función recibe" lo sacás así:

>>> def f(a, b, *args, c=3, **kwargs):
...   pass
...
>>> import inspect
>>> inspect.getfullargspec(f)
FullArgSpec(args=['a', 'b'], varargs='args', varkw='kwargs',
defaults=None, kwonlyargs=['c'], kwonlydefaults={'c': 3},
annotations={})

Slds.

-- 
.    Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/
Twitter: @facundobatista


More information about the pyar mailing list