[pyar] Detectando llamadas con cantidad incorrectas de argumentos

Marcos Dione mdione en grulic.org.ar
Vie Feb 27 19:38:43 ART 2015


On 02/27/2015 06:03 PM, Martín Gaitán wrote:
> try:
>     f(*args, **kwargs)
> except TypeError as e:
>     if e.message.startswith('f() takes exactly'):
>         log(...)
>     else:
>         raise

     Fijate en esto:

In [3]: def f (foo):
    ...:     pass
In [4]: try:
     f()
except TypeError as e:
     print e
f() takes exactly 1 argument (0 given)

     So far so good, pero:

In [5]: g= f

In [6]: try:
     g()
except TypeError as e:
     print e
    ...:
f() takes exactly 1 argument (0 given)

     El nombre de función que sale en la excepción es el nombre con el 
que declaraste la función, no con el que la llamaste, así que si f o g 
son sacada de porái, no vas a poder hacer exactamente ese matching.

-- 
(Not so) Random fortune:
[...] perhaps we ought to stop calling ourselves software developers,
software architects, or software engineers, and start calling ourselves
software writers.
	    -- Mark Ramm-Christensen

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150227/ed9a3917/attachment.html>


More information about the pyar mailing list