What is self?
self’s purpose may not seem very obvious at first, especially if you’ve never used an object-oriented programming language before!
Try to imagine a
Car that has the basic structure that all cars share in common. It defines a basic acceleration behavior, but not how fast it accelerates or what the max speed is, as that varies from car to car. It defines a
start method, but not the specifics of how it starts, as that varies as well.
Now imagine that we’ve created
Car objects of all the models we can think of. So now we have a
mustang object, a
tesla_model_x object, etc. Upon creation we can now specify how a particular model accelerates or starts. Inside of our
__init()__ method we use
self to refer to the current car model so we can assign values like top speeds and whatnot.