The first parameter passed to a class method is the class instance. So if you have a class method that takes an int and increase its count by that int. when you call the class method you will pass 1 parameter but in your class method you will have defined 2 parameters, the first being the name you want to use to refer to the class instance and the second being the actual parameter being passed from the calling code.
class MyClass:
def __init__(self):
self.counter = 0
def increase(mc1, increase_by):
mc1.counter += increase_by
mines = MyClass()
print(mines.counter)
mines.increase(50)
print(mines.counter)
So when my code calls increase and passed an int. python will actually pass two parameters, the class instance and the integer. when you receive these i receive these in my method i am labeling the class instance object i received as mc1 and the int as increase_by
so using mc1 name i can access all the class instance attributes as mc1 is pointing to the class instance