[Python-ideas] Mitigating 'self.' Method Pollution
mertz at gnosis.cx
Sun Jul 12 21:10:09 CEST 2015
> With the proposal, the above would actually read
> def abs(self):
> self x, y, z
> return sqrt(x**2 + y**2 + z**2)
> so it is obvious that z is not a global but an attribute of self.
Sure, and this exists right now as an option:
x, y, z = self.x, self.y, self.z
return sqrt(x**2 + y**2 + z**2)
The small number of characters saved on one first line isn't worth the
extra conceptual complexity of learning and reading the next construct.
> > No one stops you now from giving local names to values stored in the
> > instance within a method body. But when you do so, you KNOW 30 lines
> > that they are local names, even after the "local-looking name is actually
> > an attribute" declaration has scrolled away.
> As Steven has so nicely written in the mail that I responded to:
> | If you are writing "enterprisey" heavily object oriented code, chances
> | are you are dealing with lots of state, lots of methods, lots of
> | classes,
I don't buy it. I don't want a language construct that is meant to
self-destruct as soon as people's methods grow past 30 lines (yes, I know
it wouldn't literally do so, but there is a pretty small threshold beyond
which it turns from making "code golf" easier to actively harming
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-ideas