self is the conventional name for the parameter that refers to the current object instance. Methods receive it so they can access or change that instance’s state. section 2.2.2
Think of a class as a template and an object as one created copy. self lets each method work with that particular copy rather than with unrelated data. section 2.2.2
Using self in a simulator
class RockPaperScissorsSimulator: def __init__(self): self.computer_choice = None self.human_choice = None def print_choices(self): print(self.human_choice) print(self.computer_choice) Each method receives self automatically when called through an instance. Assigning self.human_choice stores the value on that particular simulator object.

