John Machin wrote: > On Nov 20, 11:44 am, r0g <[EMAIL PROTECTED]> wrote: >> Hi There, >> >> I know you can use eval to dynamically generate the name of a function >> you may want to call. Can it (or some equivalent method) also be used to >> do the same thing for the variables of a class e.g. >> >> class Foo(): >> bar = 1 >> gum = 2 >> >> mylist = ['bar','gum'] >> >> a = Foo() >> for each in mylist: >> a.eval(each) = 999 >> >> If so, what is the proper syntax/method for this. > > You mention "variables of a class" but you then proceed to poke at an > instance of the class. They are two different things. Which do you > mean? > > In any case, use the built-in function setattr to set attribute values > for an object or for a class. > > setattr(a, 'bar', 999) is equivalent to a.bar = 999 > setattr(Foo, 'bar', 456) is equivalent to Foo.bar = 456 > > Check out setattr (and getattr) in the docs.
The former i.e. the variables of an instance of a class. Thanks :-) Roger. -- http://mail.python.org/mailman/listinfo/python-list