Is there a better way to code variable number of return arguments?

Ethan Furman ethan at stoneleaf.us
Thu Oct 8 13:05:14 EDT 2009


Dr. Phillip M. Feldman wrote:
> I currently have a function that uses a list internally but then returns the
> list items as separate return
> values as follows:
> 
> if len(result)==1: return result[0]
> if len(result)==2: return result[0], result[1]
> 
> (and so on).  Is there a cleaner way to accomplish the same thing?

To elaborate on Paul's answer, returning the list will also unpack it if 
you have it set up that way.  E.g.

def func(alist):
    return alist

some_list = [1, 2]
this, that = func(alist)

At least, in 2.5.4 this works.  :-)

Mind you, if you don't have the correct number of return names to match 
the unpacking you'll get the normal errors from that.

Hope this helps!

~Ethan~



More information about the Python-list mailing list