In most object-oriented languages, functions are members of a class--they exist in memory only once, and when they are called,
simply a hidden argument of the function which is assigned to the object that's calling it. Python makes this explicit by requiring that
the first argument of a class's member function be
self (Python's equivalent of
this--you can name
self whatever you want, but
self is the convention).