Is it explicitly specified?
george.sakkis at gmail.com
Mon Feb 4 17:36:56 CET 2008
On Feb 4, 6:53 am, André Malo <auch-ic... at g-kein-spam.com> wrote:
> * Steven D'Aprano wrote:
> > On Sun, 03 Feb 2008 15:31:49 -0800, Paul Boddie wrote:
> >> I don't know whether I can offer much better advice than others, but I
> >> have noticed that a lot of my own code has moved in the direction of not
> >> having specific default values in function/method signatures. So,
> >> instead of this...
> >> def f(x=123):
> >> ...
> >> ...I have this:
> >> def f(x=None):
> >> if x is None:
> >> x = 123
> > For the love of Pete, WHY??????
> > I understand why you would do it for a mutable default, but immutable???
> I'm observing myself doing the same, for the following reason:
> Consider the function being part of a bigger system, where it's called from
> another function or method which should "inherit" the default value of the
> function, like:
> def g(foo, bar, x=None):
> Now if you change the default value of f(x) for some reason, you don't have
> to wind up all the possible caller signatures to reflect that change.
You might find handy a decorator I've written exactly for this
scenario, reusing default arguments across functions:
More information about the Python-list