Namespaces, multiple assignments, and exec()
Steven D'Aprano
steve at REMOVE-THIS-cybersource.com.au
Fri Dec 19 22:15:51 EST 2008
On Sat, 20 Dec 2008 02:53:16 +0000, MRAB wrote:
> If you're sure you want to use the current namespace then:
>
> for name in namelist:
> vars()[name] = func(name, args)
Doesn't work inside a function:
>>> def parrot():
... for name in ['A', 'B', 'C']:
... vars()[name] = ord(name)
... print vars()
... print A
...
>>> parrot()
{'A': 65, 'C': 67, 'B': 66, 'name': 'C'}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in parrot
NameError: global name 'A' is not defined
--
Steven
More information about the Python-list
mailing list