def with_feature(f):
 wrapper = f
 if has_this_feature(f):
  def wrapper(*args):
   call_feature(args[0])
   return f(*args)
 return wrapper

def with_feature ( f ) : wrapper = f if has_this_feature ( f ) : def wrapper ( * args ) : call_feature ( args [ 0 ] ) return f ( * args ) return wrapper
some decorator .