Do I always have to write "self." ?

Will Ware wware at world.std.com
Fri Apr 28 08:16:35 EDT 2000


Louis M. Pecora (pecora at anvil.nrl.navy.mil) wrote:
> I'm sure some way of declaring variables 'local' could be done in the
> class defintion, but I doubt Guido would do that now.

It wouldn't be too hard to write a preprocessor that would do this
for you. You might put tags in your code such as
#Locals: foo bar xyzzy
and
#Endlocals
so that the translation process for foo, bar, and xyzzy would be limited
to the method where they are used. If you promise yourself never to use
a 'def' inside a method definition, you could omit the '#Endlocals' tag,
and just look for the next line with the regular expression 'def ' in it.

> You mean by doing something like
> s=self
> at the beginning of each class method?

The choice to use the word 'self' is not imposed by Python, it's just
a convention for readability. You can use 's' instead if you wish.

def quadratic(self):
  det = self.b ** 2 - 4 * self.a * self.c
  return ((-self.b + math.sqrt(det)) / (2 * self.a),
          (-self.b - math.sqrt(det)) / (2 * self.a))

versus

def quadratic(s):
  det = s.b ** 2 - 4 * s.a * s.c
  return ((-s.b + math.sqrt(det)) / (2 * s.a),
          (-s.b - math.sqrt(det)) / (2 * s.a))
-- 
 - - - - - - - - - - - - - - - - - - - - - - - -
Resistance is futile. Capacitance is efficacious.
Will Ware	email:    wware @ world.std.com



More information about the Python-list mailing list