Evita que el decorador se use dos veces en la misma función en python
Tengo un decorador:
from functools import wraps
def d(f):
@wraps(f)
def wrapper(*args,**kwargs):
print 'Calling func'
return f(*args,**kwargs)
return wrapper
Y quiero evitar que decore la misma función dos veces, por ejemplo, evitar cosas como:
@d
@d
def f():
print 2
La única solución posible que se me ocurre es usar un dict para almacenar las funciones que el decorador ya ha decorado y generar una excepción si se le pide decorar una función que existe en el dict. Dile si tienes una idea mejor ...