[Python-Dev] the explicit self

Kilian Klimek kilian.klimek at googlemail.com
Wed Aug 27 15:47:18 CEST 2008


On Wed, Aug 27, 2008 at 9:14 AM, Cesare Di Mauro
<cesare.dimauro at a-tono.com>wrote:

> On 27 agu 2008 at 08:46:15, Kilian Klimek <kilian.klimek at googlemail.com>
> wrote:
>
> > Hello,
> >
> > i know this has been discusses very much, i'm sorry,
> > but i can't help it. In a nutshell, the proposal is as
> > follows:
> >
> > 1. Self remains explicit (like it is now).
> > 2. if a class is a subclass of a special class, e.g.
> >    named 'selfless', the self parameter is not required
> >    and a special variable, named 'this' is provided.
> >
> >
> > For example:
> >
> > class Foo (selfless):
> >     def __init__ (x, y):
> >         this.x = x
> >         ...
> >
> > A patch for 3.0b3 implementing this can be found at
> > http://www-lehre.inf.uos.de/~kklimek/misc/python_slp_8.diff<http://www-lehre.inf.uos.de/%7Ekklimek/misc/python_slp_8.diff>
> >
> > regards,
> > Kilian Klimek
> >
>
> I disagree. From "The Zen of Python":
>
> Explicit is better than implicit.


no point in discussing this, but ...

someone else emailed me this one too and i don't see the point: writing down
'self' as the first paramenter of your method does not make it any more
explicit what it means. (If you want to consider readability: even worse,
you can name it whatever you want).

Saying "your method must accept an extra parameter (which most people call
'self') that carries all object attributes" is hardly any more explicit then
saying "there is a special variable (which is always named 'this') that
carries all object attributes".


>
> Readability counts.
> Special cases aren't special enough to break the rules.
> There should be one-- and preferably only one --obvious way to do it.
>
> Cheers,
> Cesare
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20080827/8198f7a6/attachment.htm>


More information about the Python-Dev mailing list