Python Classes and dynamic class members
acatejr at gmail.com
acatejr at gmail.com
Fri Nov 3 18:48:23 EST 2006
James Stroud wrote:
> acatejr at gmail.com wrote:
> > I have a text file that I am parsing. Each line is of the form:
> >
> > max_time 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.11 0.12
> >
> > The first item is the field name and the next twelve items are values
> > for each month in the year. There are multiple lines each for some
> > different variable. I am able to parse this data easily enough, but
> > what I'd like to do is have a class that stores all this infomormation
> > using dynamic member attributes/fields and the resulting list of
> > values. For example, if the class WeatherData was instantiated and I
> > parsed the line above as so:
> >
> > field_name = "max_time;
> > values = [0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.10,0.11,0.12]
> >
> > how could I get weather data to store values in an attribute called
> > "max_time"? Ultimately, something like this would be possible:
> >
> >
> >>>>WeatherData.max_time
> >>>>[0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.10,0.11,0.12]
> >
> >
> > Any help would be appreciated.
> >
> setattr(Weatherdata, "max_time", max_time)
>
> --
> James Stroud
> UCLA-DOE Institute for Genomics and Proteomics
> Box 951570
> Los Angeles, CA 90095
>
> http://www.jamesstroud.com/
Thanks a lot!!
I did find that creating and calling the following method works too:
def setAt(self, field, data):
expression = "self." + field + " = data"
exec(expression)
I just don't know which one would be more efficient, but I like setattr
better.
More information about the Python-list
mailing list