One more thing is the reason the first parameter is self is because PYTHON needs to know where these characteristics are stored in memory, in other programming languages such as C++ you do not have to define the first parameter as self/this because the compiler automatically sets self/this as the first parameter when it converts it to machine code.