Andy Cheesman wrote: > for thing in ["top", "right", "bottom", "left"]: > eval("self." + thing).append("fish")
You don't need to use eval() here, use getattr() instead: getattr(self, thing).append('fish') > eval("self." + thing +"_extra") > eval("self." + thing) = external_function(eval("self." + thing)) #This > falls It would help if you said *how* it fails - the specific error message and traceback. I guess it is failing on the left side of the assignment, not the function call. The result of eval("self." + thing) is the value of self.thing, not an assignable reference. You should use getattr() and setattr() here: new_value = external_function(getattr(self, thing)) setattr(self, thing, new_value) or in one line if you like: setattr(self, thing, external_function(getattr(self, thing))) http://docs.python.org/lib/built-in-funcs.html Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor