@Tony-Y thank you very much for your time and help. This last answer is the closest one to what I was expecting. The only one requirement not fulfilled is that it is needed for the expressions to be fed one by one and not en block, but I believe that could be manged somehow in the init part with a ‘for’ loop, looping over all the expressions and assigning them in the following fashion:
for i, expression enumerate(list_of_expressions):
self.expression_0i = list_of_expression[‘expression_0i’]
and then at the return part we have:
     return self.expression_0i(x)

I mean something like this in general. Do you think it is doable?