Я изучаю язык программирования Python, и я наткнулся на то, что я не совсем понимаю.
В методе типа:
def method(self, blah):
    def __init__(?):
        ....
    ....
Что делает self? Что это значит? Обязательно?
Что делает метод __init__? Почему это необходимо? (И т.д.).
Я думаю, что они могут быть конструкциями ООП, но я не очень-то знаю.