Do I need "self" and "other"?
gabriel.rossetti at arimaz.com
Sat Jun 28 20:03:31 CEST 2008
Kurda Yon wrote:
> I found one example which defines the addition of two vectors as a
> method of a class. It looks like that:
> class Vector:
> def __add__(self, other):
> data = 
> for j in range(len(self.data)):
> data.append(self.data[j] + other.data[j])
> return Vector(data)
> In this example one uses "self" and "other". Does one really need to
> use this words? And, if yes, why? I have replaced "self" by "x" and
> "other" by "y" and everything looks OK. Is it really OK or I can have
> some problem in some cases?
> Thank you!
The first param "self" in an instance method is a convention, I would
recommend not changing it. The "self" param is pass automatically when
you call the method, like so :
and this would have been defines as :
def method(self, param):
# do something here
Self is like "this" in java, except it is explicitly added to the
parameter list as the first parameter. You could name it whatever you
want, but python programmers will throw tomatoes at you for naming it
something else :-), since it mean "myself" in if the instance's
perspective. Sometimes you have to pass it explicitly, like when calling
your parent's method, be you'll see this when you study inheritance.
I hope that helps, the "self" param had mixed me up some the first time
I had seen it.
More information about the Python-list