A: 

Python gives you the option of naming it something other than self, even though the standard is to name it self. Just as it gives you the option of using tabs for indents, even though the standard is to use spaces.

In other words, it's not just "assumed" because...

  1. To give you naming flexibility
  2. To make it clearer that something will be passed self (or not).
Amber
So you're saying, I **don't have to** define "self" as my first parameter in any of my functions/methods?
TeddyB
@TeddyB, no, what @Amber wrote was that you do not have to name it "self" -- you're free to name it whatever you like. The first parameter of a class method will always be passed a reference to the instance.
Andrew