newbie: self.member syntax seems /really/ annoying
madzientist
madzientist at gmail.com
Wed Sep 12 17:54:53 EDT 2007
As a newbie to Python (and OOP), I would love to hear what people
think of Steven's suggestion below. Is there a reason why classes
would be useful for the OP's question ? If you can point me to a brief
online tutorial addressing this, I would happily go there to read it
too :)
Thanks, Suresh
On Sep 12, 8:38 am, Steven D'Aprano <st... at REMOVE-THIS-
cybersource.com.au> wrote:
> On Wed, 12 Sep 2007 03:21:58 -0700, Charles Fox wrote:
> > I've just started playing around with Python, as a possible replacement
> > for a mix of C++, Matlab and Lisp. The language looks lovely and clean
> > with one huge exception: I do a lot of numerical modeling, so I deal
> > with objects (like neurons) described mathematically in papers, by
> > equations like
> > a_dot = -k(a-u)
> > In other languages, this translates nicely into code, but as far as I
> > can tell, Python needs the ugly:
> > self.a_dot = -self.k(self.a-self.u)
>
> I think you've been seriously mislead. You don't NEED self. That's only
> for writing classes.
>
> Although Python is completely object oriented, and everything is an
> object, you don't have to put your code in classes.
>
> Instead of doing something like this:
>
> class Adder(object):
> """Pointless class to add things."""
> def __init__(self, value):
> self.value = other
> def add(self, other):
> x = self.value + other
> return float(x)
>
> you don't need a class. Just write a function:
>
> def add(x, other):
> """Function that adds other to x."""
> return float(x + other)
>
> Here's how I would write your function above:
>
> def function(a, u, k):
> """Calculate a_dot from a, u and k."""
> return -k(a-u)
>
> And here is how I would use it:
>
> a = 57 # or whatever...
> u = 54
> k = 3
> a_dot = function(a, u, k)
>
> See? Not a single "self" in sight.
>
> You might also like to read about a strange, bizarre programming that
> forces you to put everything inside classes:
>
> http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns...
>
> --
> Steven.
More information about the Python-list
mailing list