A long time ago I subscribed to the Python language mailing list, and today I discovered in a discussion that "self" is not mandatory.
https://docs.python.org/2/tutorial/classes.html#random-remarks states:
Often, the first argument of a method is called self. This is nothingIt might obvious for some, but for me it is worth of note.
more than a convention: the name self has absolutely no special
meaning to Python. Note, however, that by not following the
convention your code may be less readable to other Python
programmers, and it is also conceivable that a class browser program
might be written that relies upon such a convention.