Сделал это методом грубой силы, набрав все случаи:
def my_func(input_1, input_2, input_3):
types = (
type(input_1),
type(input_2),
type(input_3),
)
if not all(types):
return None
elif not (types[0] and types[1]):
return input_3
elif not (types[0] and types[2]):
return input_2
elif not (types[1] and types[2]):
return imput_1
elif not types[0]:
return input_2 | input_3
elif not types[1]:
return input_1 | input_3
elif not types[2]:
return input_1 | input_2
else:
return input_1 | input_2 | input_3
К сожалению, это не удастся при использовании большего количества входных данных, так как нужно обработать 2 ^ (num_inputs) случая, поэтомуЯ открыт для лучших предложений.