Necesito saber el número de llamadas a una cierta función
Pepe Aracil
pepe en diselpro.com
Mar Nov 29 10:14:27 CET 2005
Faltarian los **kargs en el la funcion wrapper ¿No?
Saludos.
Chema Cortes wrote:
> Carlos Mestre escribió:
>
>>Perdon, no sé a lo que te refieres, yo quería otra cosa. ejemplo,
>>definir la función factorial en lisp, y utilizando el comando trace
>>(trace factorial), luego cuando hago esto:
>>Break 3 [6]> (factorial 6)
>>1. Trace: (FACTORIAL '6)
>>2. Trace: (FACTORIAL '5)
>>3. Trace: (FACTORIAL '4)
>>4. Trace: (FACTORIAL '3)
>>5. Trace: (FACTORIAL '2)
>>6. Trace: (FACTORIAL '1)
>>7. Trace: (FACTORIAL '0)
>>7. Trace: FACTORIAL ==> 1
>>6. Trace: FACTORIAL ==> 1
>>5. Trace: FACTORIAL ==> 2
>>4. Trace: FACTORIAL ==> 6
>>3. Trace: FACTORIAL ==> 24
>>2. Trace: FACTORIAL ==> 120
>>1. Trace: FACTORIAL ==> 720
>>
>>no sé si se me entiende :-/
>
>
> Como te sugiere Erny en otro mensaje, se puede utilizar el módulo
> 'profile' para estas cosas.
>
> Es lo primero que se había ocurrido; pero pensando veo que también se
> puede hacer muy simple con "decoradores":
>
>
> #Decorador genérico para traceos
> def mytrace(f):
> def wr_f(*args):
> s=','.join([str(item) for item in args])
> print "--> %s(%s)"% (f.__name__,s)
> res=f(*args)
> print "%s(%s) ==> %s"%(f.__name__,s,str(res))
> return res
> return wr_f
>
> @mytrace
> def fact(n):
> if n==0:
> return 1
> else:
> return n*fact(n-1)
>
> print fact(3,2)
>
>
>
> El decorador 'mytrace' se puede aplicar delante de cada función que
> quieras tracear.
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
Más información sobre la lista de distribución Python-es