On Jun 7, 6:13 am, Tilman Kispersky <[EMAIL PROTECTED]> wrote: > I have python code in a class method translated from C++ that looks > sort of like this: > > >>> self.dydt[1] = self.a * (self.b * self.y[0] - self.y[1]) > > To make this more readable in C++ I had made macros to achieve this: > #define du (dydt[1]) > #define u (y[1]) > #define V (y[0]) > > du = a * (b * V - u); > > I realize the value of not having macros in Python. They've tripped > me up more than once in C++. My question is: > Is there any way to write a shorterhand more readable version of the > python code above? I'm doing several calculations one after the other > and some of the lines are quite long.
First, you can use 's' rather than 'self'. Then, you can make 'du', 'u' and 'V' properties of your class like this: class MyClass(object): ... add this at the end of your class definition ... def _getu(self): return self.y[1] def _setu(self, u): self.y[1] = u u = property(_getu, _setu) ... and similarly for du, V Using these two tricks, your code line would be: s.du = s.a * (s.b * s.V - s.u) -- Paul Hankin -- http://mail.python.org/mailman/listinfo/python-list