[Tutor] Creating class instances through iteration

spir ☣ denis.spir at gmail.com
Fri Apr 16 05:14:31 CEST 2010

On Thu, 15 Apr 2010 21:03:52 -0500
Tim Goddard <timgoddardsemail at gmail.com> wrote:

> I came across a situation where what I thought I wanted to do was to create
> a class that was spawned from data in a .csv file.  Where column 1 was the
> name I wanted to use for each instance.  I had it all figured out and
> working except for how to write a statement where the left hand side could
> be a changing identifier.
> All I could figure out was how to create the same instance 50 times albeit
> in different ways.
> For example each row would look like [name, value1, value2, value3], I
> planned on passing the three values as a tuple
> The code would simply be:
> for row in csvimport:
>     tuple = (row[1],row[2],row[3])
>     instancename = Classname(tuple)
> How could I create different instances inside an iteration loop for each row
> ?

If I understand you properly, what you're trying to reinvent is a dict. For each row, use the name (which is data, too, right?) as key and the tuple oe whatever structure you like as value.
   thing[name] = tuple
An alternative, if you really want the names to be real var names, is to put all of that into an object as attributes, using the builtin func setattr:
   setattr(thing, name, tuple)

> Is it possible to change the name through modification of self attribute
> (wait is self an attribute?)

Don't understand why you want a class here.

> Are cats sleeping with dogs here or what?



vit esse estrany ☣


More information about the Tutor mailing list