# # My problem is that I want to create a # class, but the variables aren't known # all at once. So, I use a dictionary to # store the values in temporarily. # Then when I have a complete set, I want to # init a class from that dictionary. # However, I don't want to specify the # dictionary gets by hand # since it is error prone. # Thanks for any ideas, Brian
# So I have a class defined that accepts a number of variables # and they must be all present at object creation time. class Test: def __init__(self, a, b, c): self.a = a self.b = b self.c = c def __str__(self): return '%s, %s, %d' % (self.a, self.b, self.c) # For example: t1 = Test('asd', 'sdf', 9) print t1 # However, due to parsing XML, I am # creating the values incrementally # and I want to store them in a dictionary # and then map them easily to a class dictionary = {} # a mapping from source to destination mapping = { 'a': str, 'b': str, 'c': int, } # a sample source of values test_source = { 'a': 'test', 'b': 'asdf', 'c': 45 } # now we go through and extract the values # from our source and build the dictionary for attr_name, function in mapping.items(): dictionary[attr_name] = function(test_source.get(attr_name)) print dictionary # Here is the problem I want to avoid: # Having to list the variable names # as strings in multiple places. It is enought to # have them in the 'mapping' # dictionary above t2 = Test(dictionary.get('a'), dictionary.get('b'), dictionary.get('c')) print t2 -- http://mail.python.org/mailman/listinfo/python-list