function that accepts any amount of arguments?
Bruno Desthuilliers
bruno.42.desthuilliers at websiteburo.invalid
Thu Apr 24 07:43:25 EDT 2008
Paul McNett a écrit :
>
> def avg(*args):
> return sum(args) / len(args)
>
> There are some dangers (at least two glaring ones) with this code,
> though, which I leave as an exercise for the reader.
try:
avg("toto", 42)
except TypeError, e:
print "this is the first one : %s" % e
try:
avg()
except ZeroDivisionError, e:
print "this is the second : %s" % e
As far as I'm concerned, I would not handle the first one in the avg
function - just document that avg expects numeric args.
Not quite sure what's the best thing to do in the second case - raise a
ValueError if args is empty, or silently return 0.0 - but I'd tend to
choose the first solution (Python's Zen, verses 9-11).
More information about the Python-list
mailing list