Guido's new method definition idea

Antoine De Groote antoine at vo.lu
Sat Dec 6 10:02:53 CET 2008


Allowing "$" as a substitute for "self" wouldn't require this new syntax.

class C:
    def method($, arg):
	$.value = arg

I'm strongly against this. This looks ugly and reminds me of Perl and
Ruby. (I don't have anything against these languages, but there's a
reason I use Python).


Russ P. wrote:
> On Dec 5, 6:21 pm, "Daniel Fetchinson" <fetchin... at googlemail.com>
> wrote:
>> Hi folks,
>>
>> The story of the explicit self in method definitions has been
>> discussed to death and we all know it will stay. However, Guido
>> himself acknowledged that an alternative syntax makes perfect sense
>> and having both (old and new) in a future version of python is a
>> possibility since it maintains backward compatibility. The alternative
>> syntax will be syntactic sugar for the old one. This blog post of his
>> is what I'm talking about:
>>
>> http://neopythonic.blogspot.com/2008/10/why-explicit-self-has-to-stay...
>>
>> The proposal is to allow this:
>>
>> class C:
>>     def self.method( arg ):
>>         self.value = arg
>>         return self.value
>>
>> instead of this:
>>
>> class C:
>>     def method( self, arg ):
>>         self.value = arg
>>         return self.value
>>
>> I.e. explicit self stays only the syntax is slightly different and may
>> seem attractive to some. As pointed out by Guido classmethods would
>> work similarly:
>>
>> class C:
>>     @classmethod
>>     def cls.method( arg ):
>>         cls.val = arg
>>         return cls.val
>>
>> The fact that Guido says,
>>
>> "Now, I'm not saying that I like this better than the status quo. But
>> I like it a lot better than [...] but it has the great advantage that
>> it is backward compatible, and can be evolved into a PEP with a
>> reference implementation without too much effort."
>>
>> shows that the proposal is viable.
>>
>> I'd like this new way of defining methods, what do you guys think?
>> Anyone ready for writing a PEP?
>>
>> Cheers,
>> Daniel
>>
>> --
>> Psss, psss, put it down! -http://www.cafepress.com/putitdown
> 
> I like it.
> 
> I'll even go a step further and suggest that "$" be allowed as a
> substitute for "self". It looks like a capital "S" (for Self), and it
> stands out clearly. It also makes code more succinct with no loss of
> readability. Think of the line wraps that could be avoided.



More information about the Python-list mailing list