**kwds behavior?

Terry Reedy tjreedy at udel.edu
Tue Sep 2 12:04:05 EDT 2003


"Paradox" <JoeyTaj at netzero.com> wrote in message
news:924a9f9c.0309020652.212c54eb at posting.google.com...
> Why does the following attempts to pass in keywords arguments not
> work.

What do you mean 'not work'.  What was your output and what did you
expect?

>It would be alot cooler if there was a way to not have to have
> the function defined with the variable name.

I don't understand your meaning here.

It really seems to me
> that the 3rd function should work. Does anyone know how to
accomplish
> something like this.

Again, what is 'this'?

> def testKeywords1 (**kwds):
> print x

If you want posted code to be read with indents by everybody, use
space instead of tab to indent.  It's your choice to limit readership
or not.

>
> def testKeywords2 (**kwds):
> locals().update(kwds)

Above line has same effect as 'pass' for reason John Roth quoted.

> print x
>
> def testKeywords3 (**kwds):
> locals().update(kwds)
> def testNested():
> print x
> testNested()
>
> dict = {}
> dict['x'] = 5
> # doesn't work

I usually expect 'doesn't work' to apply to the line above that I just
read -- just as this response applies to the line quoted above.  I
suspect you meant 'below doesn't work', whatever 'doesn't work means.
The alternative way to reverse the 'pointer' is to leave a space above
and none below.

> testKeywords1(**dict)
> # doesn't work
> testKeywords2(**dict)
> # doesn't work
> testKeywords3(**dict)

If you don't get your question answered with above, try again with
different words.

Terry J. Reedy






More information about the Python-list mailing list