Is it possible to decorate a function based on a condition?
a\'la:
if she.weight() == duck.weight():
@burn
def witch():
pass
It is possible to enable/disable decorators by reassignment.
def unchanged(func): "This decorator doesn't add any behavior" return func def disabled(func): "This decorator disables the provided function, and does nothing" def empty_func(*args,**kargs): pass return empty_func # define this as equivalent to unchanged, for nice symmetry with disabled enabled = unchanged # # Sample use # GLOBAL_ENABLE_FLAG = True state = enabled if GLOBAL_ENABLE_FLAG else disabled @state def special_function_foo(): print "function was enabled"