Impedir que o decorador seja usado duas vezes na mesma função em python
Eu tenho um decorador:
from functools import wraps
def d(f):
@wraps(f)
def wrapper(*args,**kwargs):
print 'Calling func'
return f(*args,**kwargs)
return wrapper
E eu quero evitar que ele decore a mesma função duas vezes, por exemplo, evite coisas como:
@d
@d
def f():
print 2
A única solução possível que pude pensar é usar um dict para armazenar as funções que o decorador já decorou e levantar uma exceção se for solicitado a decorar uma função que existe no dict. Diga se você tem uma ideia melhor ...