But I quite like self: it's an explicit reminder every time you write OOP in Python about the idea of classes & instances.
Incidentally I'm one of those annoying people that often will use this instead of self (because I find it more readable.. at work I am famed for my efforts of trying to write code in "english" :D).
Self is also useful when your passing the class around. It's easy to see where it is heading all the time.
It will be nice to see the "you forgot self, you fool" error made explicit. When you switch languages a couple of times a day it can be easy to forget :) (PHP to Python switch is the hardest!)
I think you mean function object:method(arg) ... end, if you're assuming that object will be passed (as "self") implicitly. The colon is the difference from normal map indexing.
I much prefer Lua's solution for this over Python's (and I'm also coming to strongly prefer prototype-style OO, in general).
There are two reasons why i don't mind 'self'. The first one is that python was my first language, so i didn't know anything else. I didn't find it strange, as a person with a different background might. The second reason is that i don't do that much OOP any way, so i don't get frustrated with having to type self all the time. But when i do actually write OO code, i can see how self might annoy someone writing classes and methods all day.
But I quite like self: it's an explicit reminder every time you write OOP in Python about the idea of classes & instances.
Incidentally I'm one of those annoying people that often will use this instead of self (because I find it more readable.. at work I am famed for my efforts of trying to write code in "english" :D).
Self is also useful when your passing the class around. It's easy to see where it is heading all the time.
It will be nice to see the "you forgot self, you fool" error made explicit. When you switch languages a couple of times a day it can be easy to forget :) (PHP to Python switch is the hardest!)