Avoid these common mistakes in creating Python classes

When creating a class in Python, there are several common mistakes that programmers can make. Here are a few examples of such mistakes, along with their corresponding code examples:

1. Missing the "self" parameter in method definitions:

Oftentimes, you might forget to add the self keyword as the first argument of a method. In the incorrect code of this example, the __init__ method is missing the self parameter, which results in an error when attempting to create an instance of the class.
To address this issue, you can pass the self keyword as the first argument to each method (except static methods).

2. Not assigning instance variables correctly:

When assigning instance variables, you can forget to add the self keyword as a prefix at the start. In the incorrect code of the example below, the radius parameter is assigned to a local variable instead of the instance variable, resulting in an error when trying to access it.
To assign the value to the instance variable, you need to use the self prefix before the variable name.

3. Not using the "self" parameter when accessing instance variables:

Sometimes, you can forget to use self when accessing instance variables in a method within the class. In the incorrect code of the example below, the self prefix is not used when accessing the instance variables width and height in the calculate_area() function. As a result, a NameError will be raised because Python cannot find these variables.
The correct way to access instance variables is by specifying the self keyword before each instance variable.

4. Incorrect indentation when defining class methods:

When defining multiple methods in a class, you can make the mistake of improperly indenting each method. In this incorrect example code, the indentation for method2 is incorrect which will result in a SyntaxError. To correct this issue, simply align all the indentations correctly.