[Python-Dev] Self in method body
Steven D'Aprano
steve at pearwood.info
Mon Dec 8 23:52:20 CET 2008
On Tue, 9 Dec 2008 08:55:21 am Filip Gruszczyński wrote:
> There is a large discussion on python-list about Guido's article
> about new self syntax, therefore I would like to use that to raise
> similar question: self in the body. Some time ago I was coding in
> Magik language
> (http://en.wikipedia.org/wiki/Magik_(programming_language), which is
> dynamically typed and similar to Smalltalk and actually to Python too
> - although the syntax is far less appalling. As you can see in the
> examples, defining methods is very similar to what Guido proposed in
> his blog, though you don't provide the name of the argument, but the
> name of the class. Then you just precede attributes with a '.', which
> is 4 letters less than self. And, well, this rocks ;-)
>
> It is really not a problem to type 4 letters (well, six with a coma
> and a space) in the signature, but it takes a lot of time to type all
> those selfs inside the function's body.
For some definition of "a lot".
I've just grabbed a random, heavily OO module from my own code library.
It has 60 instances of "self", or 240 characters, out of 18,839
characters in total (including newlines). Removing self will decrease
the number of my keystrokes and the amount of pure typing time
(excluding thinking time, debugging time) by about 1.2%. I don't call
that "a lot" -- it's actually quite small. And it becomes vanishingly
trivial when you factor in that most of the time spent programming is
not typing but thinking, testing, debugging, etc.
Doing the same calculation for BaseHTTPServer.py and SimpleHTTPServer.py
in the standard library, I get 1.9% and 2.0% respectively.
> This could really save a lot of code, while attributes are still
> easily distinguishable.
I don't think so.
--
Steven
More information about the Python-Dev
mailing list