Default paranmeter for packed values
Chris Rebert
clp2 at rebertia.com
Sun Apr 18 19:46:10 EDT 2010
On Sun, Apr 18, 2010 at 4:23 PM, Xavier Ho <contact at xavierho.com> wrote:
> I ran into a strange problem today: why does Python not allow default
> paranmeters for packed arguments in a function def?
>
>>>> def test(a = 1, b = (2, 3)):
> ... print a, b
> ...
>>>> test()
> 1 (2, 3)
>
>>>> def t(a, *b = (3, 4)):
> File "<input>", line 1
> def t(a, *b = (3, 4)):
> ^
> SyntaxError: invalid syntax
>
> What was the rationale behind this design?
It's not specific to default arguments:
*z = (1,2,3) #==>
File "<stdin>", line 1
*z = (1,2,3)
SyntaxError: starred assignment target must be in a list or tuple
It doesn't really make sense to use * in such situations anyway, you
can just do the normal `z = (1,2,3)`.
Cheers,
Chris
--
http://blog.rebertia.com
More information about the Python-list
mailing list