No Python, o self explícito é obrigatório.
E, na verdade, é uma convenção reforçada pelo PEP 8 - Style Guide for Python Code na seção que fala sobre argumentos de métodos de instância.
Vamos dizer que temos a classe Person abaixo:
>>> class Person(object):
            def set_name(person, name):
                if len(name) >= 2:
                    person.name = name
Repare que, ao invés de self, está person.
Você pode usar o método set_name normalmente!
>>> woman = Person()
>>> woman.set_name('Juliana')
>>> print(woman.name)
'Juliana'
A questão é que virou convenção usar self e é o que um pythonista espera!
Referência:
https://wiki.python.org.br/SignificadoDoSelf