On Aug 19, 1:10 pm, Gary Herron <[EMAIL PROTECTED]> wrote: > [EMAIL PROTECTED] wrote: > > On Aug 15, 1:42 pm, mfglinux <[EMAIL PROTECTED]> wrote: > > >> Hello to everybody > > >> I would like to know how to declare in python a "variable name" that > >> it is in turn a variable > >> In bash shell I would wrote sthg like: > > >> for x in `seq 1 3` > >> do > >> M$i=Material(x) #Material is a python class > >> done > > >> Why I need this? Cause I have a python module that obliges me to build > >> a variable called Period, which should have a variable name of > >> summands (depends on the value of x) > > >> #Let's say x=3, then Period definition is > >> Period=Slab(Material1(12.5)+Material2(25)+Material3(12.5)) #Slab is a > >> python class > > >> I dont know how to automatize last piece of code for any x > > >> thank you > > >> Marcos > > > Regardless of whether or not this is a "best practice" sometimes it is > > necessary. For example, I am looping through a dictionary to set some > > class properties. Anyway, here is what I finally came up with: > > > exec "self.%s = '%s'" % (item, plist[item]) > > Yuck! Not at all necessary. Use setattr instead: > > setattr(self, item, plist[item]) > > That's much cleaner then an exec or eval. You may also find getattr and > hasattr useful. > > Gary Herron > > > A more simple example for setting a variable outside of a class... > > > exec '%s = '%s'" % ('variableName', 'variable value') > > > Cheers! > > Mike
Thanks! I'm still getting used to Python's nifty features. -- http://mail.python.org/mailman/listinfo/python-list