I have a lot of class attributes that I want to create, so I decided to use a function to do so:
def make_index_variables(self):
for index, label in enumerate(self.variable_labels):
eval('self.' + label + '_index = ' + str(index))
If earlier, I defined:
self.variable_labels = ['x', 'y']
I get an error message like this:
eval('self.' + label + '_index = ' + str(index))
self.x_index = 0
^
SyntaxError: invalid syntax
I am beginning to realize that using setattr is probably better than using eval (but I am not sure). In any case, why does eval raise this error?
execfor "commands" (likex = 5), andevalfor expressions (like2**5). And yes, usingsetattris definitely better.