On Fri, 5 Mar 2010 17:38:08 -0800
Daryl V <vandyke.geospat...@gmail.com> wrote:

> I have a csv list of data, of the form:
> plot, utmN83_X, utmN83_Y, plot_radius_m
> Spring1,348545,3589235,13.2
> etc.
[...]
> What I want to do is use the first entry in that row (row[0]) as the
> variable name for the instantiated class. 

There are several solution, for design & implementation.

(1) You can do some trick to create vars as you explain. But it's ugly and in 
my opinion wrong: because the set of data build a kind of whole, thus should 
have global name, say "data".

(2) Build a dictionary which keys are the names:
    name = row[0]
    data[name] = value
    ...
    v = data[name]
This is much better because its standard programming and the data are properly 
packed. Right?

(3) Build a custom composite object which attributes are named the way you 
want. Python does not have a syntax to set attributes with variable names, but 
provides a builtin func for this:
    name = row[0]
    setattr(data, name, value)
    ...
    v = data.name
It may look a bit contorsed, but again it's because python does not have a 
syntax for this.

I would go for the latter -- it may be a question of style.

Denis
-- 
________________________________

la vita e estrany

spir.wikidot.com

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to