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 nothing 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. It might obvious for some, but for me it is worth of note.