[Python-ideas] Mitigating 'self.' Method Pollution

Michael Hewitt michael at hewitts.us
Sat Jul 11 00:31:28 CEST 2015


Last night I made a post to the neopythonic blog proposing a Python 3.x
feature that Guido asked me to forward to this alias.  For the full
background, see the link to my post below.  For brevity, I will simply
submit the proposal here.  The specific problem I am addressing is the
pollution of Python methods by 'self.' to reference fields.  Here is the
proposal:

The name of the first parameter to a method can be used to scope subsequent
variable references similar to the behavior of 'global'.


Here are some examples:

class Foo:

def method_a(self)

self x # subsequent 'x' references are scoped to 'self'

x = 5 # same as self.x = 5

def method_b(this)

this x, y # subsequent 'x' & 'y' refs are scoped to 'this'

x = y # same as this.x = this.y

def method_c(its)

its.x = 5 # still works just like it used to


This suggestion is fully backward compatible with existing Python code, but
would eliminate the need to pollute future Python methods with copious
'self.' prefixes, thereby improving both readability and maintainabilty.

Thank you for your consideration.

Michael Hewitt

Original Post:
http://neopythonic.blogspot.com/2008/10/why-explicit-self-has-to-stay.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20150710/e59433d2/attachment.html>


More information about the Python-ideas mailing list