stylistic question -- optional return value
Roy Smith
roy at panix.com
Wed Aug 28 17:12:48 EDT 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 :-)
More information about the Python-list
mailing list