Dennis Lee Bieber wrote: > On Tue, 14 Nov 2006 05:45:57 GMT, "OKB (not okblacke)" > <[EMAIL PROTECTED]> declaimed the following in > comp.lang.python: > >> >> I was just wondering about this yesterday. Is there a >> reason you >> can only unpack a sequence at the END of the positional >> argument list? > > Not a reasoned explanation, but... Python has to be able to > assign > "defined" parameters before gathering the */** parameters.
Sorry, I don't really understand what you mean by that. I'm talking about the UNpacking of a sequence into separate function arguments, which I was assuming happened on the "outside" at the time the function was called. That is, why aren't these two calls exactly the same: a = [2,3] f(1, *a, 4) f(1, 2, 3, 4) I don't understand why Python would need to assign "defined parameters" first -- the sequence unpacking here can happen before anything is mapped to the function parameters at all. (Can't it?) I can see why moving the kwargs up earlier in the list isn't valid, because it isn't valid for normal argument-passing either; switching the order of individually named kwargs and a **dict isn't meaningful because the kwargs aren't ordered anyway. But is there a reason you can't unpack a sequence into the middle of the positional argument list? -- --OKB (not okblacke) Brendan Barnwell "Do not follow where the path may lead. Go, instead, where there is no path, and leave a trail." --author unknown -- http://mail.python.org/mailman/listinfo/python-list