Run time default arguments

ting at thsu.org ting at thsu.org
Thu Aug 25 16:54:35 EDT 2011


On Aug 25, 10:35 am, Arnaud Delobelle <arno... at gmail.com> wrote:
> You're close to the usual idiom:
>
> def doSomething(debug=None):
>     if debug is None:
>         debug = defaults['debug']
>     ...
>
> Note the use of 'is' rather than '=='
> HTH

Hmm, from what you are saying, it seems like there's no elegant way to
handle run time defaults for function arguments, meaning that I should
probably write a sql-esc coalesce function to keep my code cleaner. I
take it that most people who run into this situation do this?

def coalesce(*args):
  for a in args:
    if a is not None:
      return a
  return None

def doSomething(debug=None):
  debug = coalesce(debug,defaults['debug'])
  # blah blah blah
--
// T.Hsu



More information about the Python-list mailing list