Форум сайта python.su
0
Здравствуйте. Будет класс дека Deque, в котором будут методы, типа pushFront/pushBack - добавить элемент в начало/конец списка, popFront/popBack - извлечь элемент из начала/конца списка, getFront/getBack - вернуть первый и последний элемент, size - кол-во элементов, clear - очистить список. И на основе этого родительского класса нужно создать класс стека Stack с методами push, pop, get, size, clear и класс очереди Queue с методами push, pop, get, size, clear. Так вот, как можно наследовать и переименовать функции из родительского класса в дочерний? Именно определенные функции, не все.
Офлайн
857
>>> 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 >>>
Отредактировано py.user.next (Окт. 21, 2016 04:42:07)
Офлайн
0
py.user.next, спасибо вам, помогли.
Офлайн