zipher wrote: > Would it be prudent to rid the long-standing "argument" (pun unintended) > about self and the ulterior spellings of it, by changing it into a symbol > rather than a name? > > Something like: > > class MyClass(object): > > def __init__(@): > @.dummy = None
Just seeing the Python3.5 announce with @ used as matrix multiplication operator ;-) > OR, even better, getting *rid of it* in the parameter list, so it stops > confusing people about how many parameters a method needs, and transform > it into a true *operator*. Self is not an operator, its the target object as first parameter. And with Python you can call some methods directly using theclass.themethod(objet, param1, param2). > class MyClass(object): > > def __init__(): #takes no arguments! > @.dummy = None #the @ invokes the class object's dictionary > > That would seem to be a nice solution to the problem, really. It doesn't > become PERLish because you've made it into a genuine operator -- "self" > was always a non-variable that looked like a variable and hence created an > itch that couldn't be scratched. «Explicit is better than implicit» I think that googling for that idea you will find other people already proposing it (I've seen propositions to directly remove part before the dot like this: .dummy = None). Just read it. > Anyone else have any thoughts? IMHO Zero chance that it be adopted. A+ Laurent. -- https://mail.python.org/mailman/listinfo/python-list