Возвращаемые значения основаны на маске.Вы можете выяснить, что возвращать, перебирая значения y и значения mask
с zip
.
def calculate(X, output2=False, output3=False):
...
mask = [True, output2, output3]
y = [y1, y2, y3]
return [i for i, j in zip(y, mask) if j]
out1, out3 = calculate(X, output3=True)
out1
array([[2., 2., 2.],
[2., 2., 2.],
[2., 2., 2.]])
out3
array([[4., 4., 4.],
[4., 4., 4.],
[4., 4., 4.]])
Если вы возвращаете только один элемент, вам нужно небольшое изменение.Вот пример:
out1, *_ = calculate(X, output3=False)