getattr/setattr q.
Steven D'Aprano
steve at REMOVEME.cybersource.com.au
Tue Apr 3 01:07:18 EDT 2007
On Tue, 03 Apr 2007 05:08:42 +0100, Paulo da Silva wrote:
> Hi!
>
> In a class C, I may do setattr(C,'x',10).
>
> Is it possible to use getattr/setattr for variables not inside
> classes or something equivalent? I mean with the same result as
> exec("x=10").
Yes, but you shouldn't unless you really need to. You're better off
rethinking your algorithm.
If you think you really need to, you probably don't.
If you *really* think you really need to, you might.
>>> x
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'x' is not defined
>>> globals()['x'] = 5
>>> x
5
Note that there is also a function locals(), but it doesn't work as you
might expect:
>>> def f():
... locals()['x'] = 99
... print x
...
>>> f()
5
--
Steven D'Aprano
More information about the Python-list
mailing list