Well this discussion is chugging along merrily now under its own steam, but as the OP I should probably clarify a few things about my own views since people continue to respond to them (and are in some cases misunderstanding me.)
I *like* explicit self for instance variable access. There are arguments for and against, and my personal opinion is that the arguments for are stronger. Local variables and instance variables should be explicitly differentiated somehow, for the sake of readability. Python's approach works. I slightly prefer Ruby's @, because I think the brevity is a net win for something so commonplace (is it less readable? Maybe. is "def" less readable than "define"? I don't know - I think about 10 seconds of coding in Python or Ruby is enough for you to be able to instantly grok def. Likewise, @. The argument is more aesthetic IMO - how many perl-style/1337speak pu|\| ([EMAIL PROTECTED] [EMAIL PROTECTED]|<$ can you stand?) I have come to dislike explicit self in method argument lists. Sure, there are reasons. I don't think they're at all strong enough. I'm definitely against the != behaviour, and maybe will get around to actually PEPing it. The point I was trying to make originally was that applying any mantra dogmatically, including Explicit is better than implicit, can lead to bad results. Perhaps having Practicality beats purity is enough of a reminder of that fact for the Python community :-) -- http://mail.python.org/mailman/listinfo/python-list