Я пытаюсь научиться использовать классы в Python, и мне удалось заставить следующий код работать методом проб и ошибок, но я не уверен, как! Кажется, использование «я». иногда требуется, в то время как в других случаях его использование приводит к ошибке. Я был бы очень признателен, если бы кто-то мог объяснить, почему различные строки кода кажутся ведущими себя так по-разному
Если я заменю строку self._tot += _new
на self._tot += self._new
, тогда я получу следующее ошибка NameError: name 'self' is not defined
.
И наоборот, если я заменяю строку self._tot -= self._last
на self._tot -= _last
, тогда я получаю следующую ошибку NameError: name '_last' is not defined
Код, который ведет себя, по-видимому, противоположным образом: -
class PremiumCounter:
def __init__(self, _tot = 0):
self._tot = _tot
self._new = 0
#self._last = 0
def add(self, _new = 1):
self._tot += _new
self._last = _new
def undo(self):
self._tot -= self._last
def get_total(self):
return self._tot
def clear_counter(self):
self._tot = 0
ConcertAttendee2 = PremiumCounter(4)#Creates ConcertAttendee2 as an instance of the 'ImprovedCounter' class
ConcertAttendee2.clear_counter()
ConcertAttendee2.add(3)
ConcertAttendee2.add(3)
ConcertAttendee2.undo()
print("Total concert attendees: " + str(ConcertAttendee2.get_total() ))