Steven D'Aprano <[EMAIL PROTECTED]> writes: > Anyone have any good ideas for how I should implement this?
These days you can use properties. Before, you'd have had to do it manually with __setattr__ / __getattr__ methods. Here's how I'd do it with properties, if I have the math right. You're using a and b as the canonical values of the variables, computing x and y from them, and adjusting them when x and y change. class Parrot(object): x = property(getx, setx) y = property(gety, sety) def getx(self): return self.a + self.b def setx(self, x): y = self.y # calls gety self.a, self.b = 2*x - y, y-x def gety(self): return self.a + 2*self.b def sety(self, y): x = self.x # calls getx self.a, self.b = 2*x - y, y-x -- http://mail.python.org/mailman/listinfo/python-list