Feb-13-2020, 12:53 PM
I want to execute multiple functions that have different arguments when a condition is satisfied, but I never get any of them executed with the correct arguments:
Thank you in advance!!
Ok, I just had to delete the lambda arguments and works fine:
From:
conditions = [condition1, condition2, condition3] functions = [lambda: self._f(), lambda x: self._f2(a), lambda x,y: self._f3(b, c)] for condition, function in zip(conditions, functions): if condition: function() # execute the proper function with 0, 1 or 2 arguments break def _f(): print('function1 with no arguments') def _f2(x): print(f'function2 with one argument {x}') def _f3(x, y): print(f'function2 with two arguments {x} and {y}')But when the condition is satisfied, the corresponding function is executed with wrong parameters so it fails and raises an error. What I am doing wrong??
Thank you in advance!!
Ok, I just had to delete the lambda arguments and works fine:
From:
functions = [lambda: self._f(), lambda x: self._f2(a), lambda x,y: self._f3(b, c)]to:
functions = [lambda: self._f(), lambda: self._f2(a), lambda: self._f3(b, c)]