Вопрос пользователя Андрей Смагин в уроке «Инициализация и протоколы», курс «Python: Введение в ООП»
Как выходит такое значение в тестах?
c = Counter()
assert c.inc().inc(5).dec(2).value == 4
d = c.inc(100)
assert d.dec().value == 99
0 + 1 + 5 - 2 = 4
дальше ведь идет продолжение: 4 + 100 = 104
104 - 1 = 103
где тут 99?
1
0
Каждый вызов метода .inc()
или .dec()
порождает новый счётчик с новым значением. Счётчик же, в самом начале записанный в c
, всегда сохраняет изначальное значение 0
. Поэтому при создании счётчика d
через добавление к нулю ста, счётчик d
получает значение 0 + 100 = 100
. А 100 - 1
это уже 99
.
0
Есть вопрос или хотите участвовать в обсуждении?
Зарегистрируйтесь или войдите в свой аккаунт
Похожие вопросы
Я не знаю таких плохих слов, чтобы описать насколько сильно хочется пройтись по Алексею. Пока еще мягко буд...
Vitalii Paprotskyi 20 августа 2020 →
В решение учителя есть возможность создать счетчик с отрицательным значениям. Лучше в инициализаторе написа...