What's the best way to return multiple values from a function? What's the best way to return multiple values from a function? python python

What's the best way to return multiple values from a function?


def f(in_str):    out_str = in_str.upper()    return True, out_str # Creates tuple automaticallysucceeded, b = f("a") # Automatic tuple unpacking


Why not throw an exception if the operation wasn't successful? Personally, I tend to be of the opinion that if you need to return more than one value from a function, you should reconsider if you're doing things the right way or use an object.

But more directly to the point, if you throw an exception, you're forcing them to deal with the problem. If you try to return a value that indicates failure, it's very well possible somebody could not check the value and end up with some potentially hard to debug errors.


Return a tuple.

def f(x):    # do stuff    return (True, modified_string)success, modified_string = f(something)