Объектный подход: стек с нуля
Наличие такого класса открывает некоторые новые возможности. Например, теперь Вы можете иметь более одного стека, который ведет себя одинаково. Каждый стек будет иметь свою собственную копию личных данных, но будет использовать один и тот же набор методов.
Это именно то, что мы хотим для этого примера.
Проанализируйте код:
class Stack:
def __init__(self):
self.__stack_list = []
def push(self, val):
self.__stack_list.append(val)
def pop(self):
val = self.__stack_list[-1]
del self.__stack_list[-1]
return val
stack_object_1 = Stack()
stack_object_2 = Stack()
stack_object_1.push(3)
stack_object_2.push(stack_object_1.pop())
print(stack_object_2.pop())
Два стека созданы из одного базового класса. Они работают независимо. Вы можете сделать их больше, если хотите.
Запустите код в редакторе и посмотрите, что произойдет. Проведите свои собственные эксперименты.
Code
class Stack:def __init__(self):
self.__stackList = []
def push(self, val):
self.__stackList.append(val)
def pop(self):
val = self.__stackList[-1]
del self.__stackList[-1]
return val
stackObject1 = Stack()
stackObject2 = Stack()
stackObject1.push(3)
stackObject2.push(stackObject1.pop())
print(stackObject2.pop())
{{ dockerServerErrorMsg }}
×
{{ errorMsg }}
×
{{ successMsg }}
×