Class methods have only one specific difference from ordinary functions - they must have
an extra first name that has to be added to the beginning of the parameter list, but you
do do not give a value for this parameter when you call
the method, Python will provide it. This particular variable refers to the object itself,
and by convention, it is given the name self
.
Although, you can give any name for this parameter, it is strongly
recommended that you use the name self
- any other name is
definitely frowned upon. There are many advantages to using a standard name - any reader
of your program will immediately recognize it and even specialized IDEs
(Integrated Development Environments) can help you if you use self
.
The self
in Python is equivalent to the self
pointer in C++ and the this
reference in Java and C#.
You must be wondering how Python gives the value for self
and why you
don't need to give a value for it. An example will make this clear. Say you have a class
called MyClass
and an instance of this class called
MyObject
. When you call a method of this object as
MyObject.method(arg1, arg2)
, this is automatically converted by Python
into MyClass.method(MyObject, arg1, arg2
- this is what the special
self
is all about.
This also means that if you have a method which takes no arguments, then you still have
to define the method to have a self
argument.