Запретить использование декоратора дважды в одной и той же функции в python
У меня есть декоратор:
from functools import wraps
def d(f):
@wraps(f)
def wrapper(*args,**kwargs):
print 'Calling func'
return f(*args,**kwargs)
return wrapper
И я хочу, чтобы он не украшал одну и ту же функцию дважды, например, такие вещи, как:
@d
@d
def f():
print 2
Единственное возможное решение, о котором я мог подумать, - это использовать dict для хранения функций, которые декоратор уже декорировал, и вызывать исключение, если его попросили декорировать функцию, которая существует в dict. Скажите, если у вас есть идея получше ...