Keyword arguments - strange behaviour?
harold fellermann
harold.fellermann at upf.edu
Tue Dec 21 10:26:22 EST 2004
Hi,
I cannot see any strange behavior. this code works exacly as you and I
suspect:
>>> def otherfunction(x) :
... return x
...
>>> def function(arg=otherfunction(5)) :
... return arg
...
>>> function(3)
3
>>> function()
5
Or is this not what you excepted?
- harold -
On 21.12.2004, at 15:47, brian.bird at securetrading.com wrote:
> def function(arg=otherfunction(value)):
> return arg
>
> My expectation would have been that otherfunction(value) would be
> called if (and only if) the arg keyword parameter was missing from the
> function() call (ie. the optional value is evaluated the lazy way).
> Also, otherfunction would be called each and every time this function()
> is called without the arg keyword. (At least, I would have assumed this
> before today)
>
> Still, I can see why it's been implemented the way it has, it just
> seems a shame there isn't a neat shortcut to default lots of optional
> arguments to new mutable objects. And since I'm not the only one to
> fall into this trap it makes me wonder why the default behaviour isn't
> made to be what most people seem to expect?
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>
>
--
Freunde, nur Mut,
Lächelt und sprecht:
Die Menschen sind gut --
Bloß die Leute sind schlecht.
-- Erich Kästner
More information about the Python-list
mailing list