> when creating a series of objects, where each object represents a > field from > a submitted html form, how do I make variables that reference the > objects be > the same as the names of the respective objects ?
The usual solution for this is to use a dictionary keyed by object name. There is an example of this technique in my OOP topic in my tutor using bank accounts keyed by account number - under the heading "Collections of Objects". There are other solutions based on modifying the global namerspace but thats messy IMHO and makes your code very dependant on the pre-knowledge of the fields passed which can introduce maintenance problems later. Using a dictionary your code becomes: > class Datum: > def __init__(self, value, required=None, label=None): > self.value = value > self.required = required > self.label = label > > and a dictionary of submitted values: > > some_dict = {'applicant_full_name':'John Smith', > 'applicant_address_line_1':'100 Main Street', > 'applicant_city':'Anytown', > 'applicant_state':'WY', 'applicant_postal_code':'55555', > 'country':'US', ' > applicant_email':'[EMAIL PROTECTED]', 'applicant_telephone':'555 555 > 5555'} > > and I created a list of objects like so: > > some_list = {} > for key, value in some_dict.items(): > some_list[key] = Datum(value) > to make it so I can refer to each respective Datum instance by its > Datum.key, > e.g., applicant_full_name would refer to the Datum instance with key > 'applicant_full_name' and applicant_full_name.value would give me > "John > Smith." I tried: print some_list['applicant_full_name'].value > for x in some_list: > some_string = "%s = %s" % (x.key, x) > eval(some_string) You would need exec() not eval but... eval and exec both have serious security implications and should be avoided where possible. Hopefully the dictionary technique achieves what you want? -- Alan Gauld Author of the Learn to Program web site http://www.freenetpages.co.uk/hp/alan.gauld _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor