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.