Module (27%)
Section (88%)
Лабораторная работа

Время выполнения

20-45 минут

Уровень сложности

Низкий/Средний

Цели

  • улучшение навыков учащегося в определении классов;
  • использование существующих классов для создания новых классов с новыми функциями.

Сценарий

Недавно мы показали Вам, как расширить возможности Stack, определив новый класс (т.е. подкласс), который сохраняет все унаследованные черты и добавляет некоторые новые.

Ваша задача - расширить поведение класса Stack таким образом, чтобы класс мог подсчитывать все добавляемые и удаляемые элементы (мы предполагаем, что подсчета удалений достаточно). Используйте класс Stack, который мы предоставили в редакторе.

Следуйте подсказкам:

  • добавьте свойство, предназначенное для подсчета операций pop, и дайте ему имя, гарантирующее его скрытие;
  • инициализируйте его нулем внутри конструктора;
  • добавьте метод, который возвращает текущее значение, присвоенное счетчику (назовите его get_counter()).

Дополните код в редакторе. Запустите его, чтобы проверить, выводит ли Ваш код 100.



Code

class Stack:
def __init__(self):
self.__stk = []

def push(self, val):
self.__stk.append(val)

def pop(self):
val = self.__stk[-1]
del self.__stk[-1]
return val


class CountingStack(Stack):
def __init__(self):
#
# Заполните конструктор соответствующими действиями.
#

def get_counter(self):
#
# Представьте миру текущее значение счетчика.
#

def pop(self):
#
# Проведите операцию pop и обновите счетчик.
#


stk = CountingStack()
for i in range(100):
stk.push(i)
stk.pop()
print(stk.get_counter())
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×