self указывает на текущий экземпляр класса. 
То есть, например, есть класс Человек, которому при создании можно указать имя и возраст. Можно создать двоих людей и у каждого внутри своего класса будет свой self. Self нам позволяет обратиться к атрибутам и методам конкретного экземпляра класса. 
class Human(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age
old_man = Human('Vasilich', 88)
young_man = Human('Petya', 6)
print(old_man.name, old_man.age)
print(young_man.name, young_man.age)
>>> 'Vasilich', 88
>>> 'Petya', 6
Это без учёта наследования классов, там другая специфика. Пока для понимания основ этого достаточно.