On Jun 7, 6:13*am, Tilman Kispersky <tilman...@gmail.comwrote:
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