Ваше arg_cache
определение должно сделать что-то вроде:
def arg_cache(cthis, cthat, cthisandthat):
def f(obj):
obj.cache_this = cthis
obj.cache_that = cthat
obj.thisandthat = cthisandthat
return obj
return f
@arg_cache(cache_this, cache_that, cache_this_and_that)
...
В примере предполагается, что вы просто хотите установить некоторые свойства для декорированного класса. Конечно, вы можете сделать что-то еще с тремя параметрами.