On 31/07/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> is there a way for me to create a class that accepts a dictionary of
> submitted data and uses each key ad value to create a corresponding member
> variable ? The current way I do this is with a very long argument list, and
> line by line:
>
> class Candidate(object):
> def __init__(self, full_name, address_line_1, city, postal_code, email,
> desired_program, telephone=None, disabled=None, can_receive_media=None,
> media_sent_to=None, ...):
> self.full_name = full_name
> self.address_line_1 = address_line_1
> self.city = city
> self.postal_code = postal_code
> self.email = email
> self.desired_program = desired_program
The setattr() function is probably what you remember. You could write
something like:
for var in ['full_name', 'address_line_1', 'city'] # etc
setattr(self, var, locals()[var])
You could even write:
for var in locals():
setattr(self, var, locals()[var])
but what you gain in convienience you lose in clarity, and possibly
safety if you aren't careful..
--
John.
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor