code: def composite_decorator(func):
          
          @wraps(func)
          def wrapper(self, *args, **kwargs):
              total = []
              for weight,iso in zip(self.weights,self.isochrones):
                  subfunc = getattr(iso,func.__name__)
                  total.append(weight*subfunc(*args,**kwargs))
              return np.sum(total,axis=0)
          return wrapper
docs: Decorator for wrapping functions that calculate a weighted sum