Jughead
Окт. 20, 2016 19:38:10
Здравствуйте. Будет класс дека Deque, в котором будут методы, типа pushFront/pushBack - добавить элемент в начало/конец списка, popFront/popBack - извлечь элемент из начала/конца списка, getFront/getBack - вернуть первый и последний элемент, size - кол-во элементов, clear - очистить список. И на основе этого родительского класса нужно создать класс стека Stack с методами push, pop, get, size, clear и класс очереди Queue с методами push, pop, get, size, clear. Так вот, как можно наследовать и переименовать функции из родительского класса в дочерний? Именно определенные функции, не все.
py.user.next
Окт. 21, 2016 04:34:59
>>> class Deque:
...
... def pushFront(self, e):
... print('pushFront', e)
...
... def popFront(self):
... print('popFront')
...
... def pushBack(self, e):
... print('pushBack', e)
...
... def popBack(self):
... print('popBack')
...
>>> class Stack(Deque):
...
... push = Deque.pushFront
... pop = Deque.popFront
...
>>> class Queue(Deque):
...
... push = Deque.pushBack
... pop = Deque.popFront
...
>>> st = Stack()
>>> st.push(1)
pushFront 1
>>> st.pop()
popFront
>>>
>>> qu = Queue()
>>> qu.push(1)
pushBack 1
>>> qu.pop()
popFront
>>>
А для наследования можешь применить подъём к суперклассу
>>> class Deque:
...
... def pushFront(self, e):
... print('pushFront', e)
...
... def popFront(self):
... print('popFront')
...
... def pushBack(self, e):
... print('pushBack', e)
...
... def popBack(self):
... print('popBack')
...
>>> class Stack(Deque):
...
... def __init__(self):
... self.push = super().pushFront
... self.pop = super().popFront
...
>>> st = Stack()
>>> st.push(1)
pushFront 1
>>> st.pop()
popFront
>>>
Jughead
Окт. 21, 2016 10:20:27
py.user.next, спасибо вам, помогли.