self - это ни в коем случае не зарезервированное слово. Это просто название переменной.
В методах класса первый параметр функции
по соглашению именуют self, и это ссылка на сам объект этого класса. Но это именно соглашение. Вы вольны называть параметры как угодно.
Зачем это нужно?
Ну вот есть объект и вы хотите создать/изменить поле у этого объекта из метода этого самого объекта.
class Human:
def __init__(self):
self.blood = 7000
def add_blood(self, volume):
self.blood += volume