# stylistic question -- optional return value

Roy Smith roy at panix.com
Wed Aug 28 23:12:48 CEST 2002

```Hans Nowak <wurmy at earthlink.net> wrote:
> In general, it may be better to use two separate functions, aside... the
> "sometimes it returns A and something it returns B" is usually not a good
> idea.

Well, I could imagine wanting to write a function which takes two
integers and returns their quotient...

#
# Divide two integers.  If the first is a integer multiple of the second,
# return the quotient, otherwise return the quotient and the remainder.
# Assume for the moment, we're dealing with pre-2.0 division semantics!
#
def idivide (x, y):
quotient = x / y
remainder = x % y
if remainder == 0:
return quotient
else:
return (quotient, remainder)

This may be a little silly, but in some ways it makes sense.  If I ask
most people what I get if I divide 6 by 3, the answer will be "2", not
"2 remainder 0".  There is a certain (possibly warped) beauty in having
this function return a variable number of arguments.  We don't seem to
have any problem with functions which take a variable number of
arguments.  Simplicity and orthogonality would say that if you can do
that, you should be able to return a variable number of arguments as
well.

Now, I'm dying to hear Andrew's explanation of why he actually wants to
do this :-)

```