Лабораторная работа
Время выполнения
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 }}
×