On Sun, 07 Dec 2008 12:57:27 +0100, News123 wrote: > Lie wrote: >> On Dec 7, 1:02 am, News123 <[EMAIL PROTECTED]> wrote: >>> What would be interesting would be some syntactical sugar to get rid >>> of the 'self' (at least in the code body). >>> >>> example: >>> class C: >>> class_elements a,b,c,d >>> >>> def method(self,arg): >>> global d >>> a,b,c = arg[0..3] >>> d = a + b >>> self.e = a + d >>> >>> >> Nah, that would make it not explicit. Explicit here also means that to >> refer to self's a, we need to explicitly refer to self. > > Well being explicit when trying to suggest an implicit syntax (in order > to reduce typing) is a little difficult ;-) > > Though you're right my main goal is not being implicit but would be > reducing typing and have shorter source code lines. > > If 'global '<varname>' is accepted inside a def, then moving > 'class_elements <varnames>' inside the def could be acceptable as well > though it would requiere, that this statement is repeated per def >
The advantage of explicit self is to easily differentiate instance variable with local variable/names. When I need to shorten the code, I'll simply alias it to a local name, no need for syntax change or new keyword. class C(object): def __init__(self): self.a = 2 self.b = 2 self.c = 3 def x(self): #return ((-self.b + math.sqrt(self.b**2 - 4 * self.a * self.c)) / (2 * self.a)), ((-self.b - math.sqrt(self.b**2 - 4 * self.a * self.c)) / (2 * self.a)) a, b, c = self.a, self.b, self.c sq = math.sqrt return ((-b + sq(b**2 - 4*a*c)) / (2*a)), ((-b - sq(b**2 - 4*a*c)) / (2*a)) -- http://mail.python.org/mailman/listinfo/python-list