Объясните что такое метод __init__, как он работает, и что будет если его не вызывать?
Нельзя будет создавать экземпляры класса с передачей аргументов например.
Насколько я помню - он вызывается __new__ с экземпляром переданным в self. А затем производит его инициализацию теми параметрами которые были переданны в аргументах конструктора класса. В отличие от __new__, __init__ - не конструктор, он просто выполняет инициализацию.