Why do class methods always need 'self' as the first parameter?
T. Goodchild
tgoodchild at gmail.com
Wed Aug 31 10:35:36 EDT 2011
I’m new to Python, and I love it. The philosophy of the language (and
of the community as a whole) is beautiful to me.
But one of the things that bugs me is the requirement that all class
methods have 'self' as their first parameter. On a gut level, to me
this seems to be at odds with Python’s dedication to simplicity.
For example, consider Python’s indent-sensitive syntax. Although
other languages didn’t use indentation to specify scope, programmers
always used indentation anyways. Making indentation took a common
practice, made it a rule, and the result was a significantly improved
signal-to-noise ratio in the readability of Python code.
So why is 'self' necessary on class methods? It seems to me that the
most common practice is that class methods *almost always* operate on
the instance that called them. It would make more sense to me if this
was assumed by default, and for "static" methods (methods that are
part of a class, but never associated with a specific instance) to be
labelled instead.
Just curious about the rationale behind this part of the language.
More information about the Python-list
mailing list