El enfoque orientado a objetos: una pila desde cero (continuación)
Esta es la nueva función pop
:
def pop(self):
val = Pila.pop(self)
self.__sum -= val
return val
Hasta ahora, hemos definido la variable __sum
, pero no hemos proporcionado un método para obtener su valor. Parece estar escondido. ¿Cómo podemos mostrarlo y que al mismo tiempo se proteja de modificaciones?
Tenemos que definir un nuevo método. Lo nombraremos getSuma
. Su única tarea será devolver el valor de __sum
.
Aquí está:
def getSuma(self):
return self.__sum
Entonces, veamos el programa en el editor. El código completo de la clase está ahí. Podemos ahora verificar su funcionamiento, y lo hacemos con la ayuda de unas pocas líneas de código adicionales.
Como puedes ver, agregamos cinco valores subsiguientes en la pila, imprimimos su suma y los sacamos todos de la pila.
Bien, esta ha sido una breve introducción a la programación de orientada a objetos de Python. Pronto te contaremos todo con más detalle.
Code
class Pila:def __init__(self):
self.__listaPila = []
def push(self, val):
self.__listaPila.append(val)
def pop(self):
val = self.__listaPila[-1]
del self.__listaPila[-1]
return val
class SumarPila(Pila):
def __init__(self):
Pila.__init__(self)
self.__sum = 0
def getSuma(self):
return self.__sum
def push(self, val):
self.__sum += val
Pila.push(self, val)
def pop(self):
val = Pila.pop(self)
self.__sum -= val
return val
objetoPila = SumarPila()
for i in range(5):
objetoPila.push(i)
print(objetoPila.getSuma())
for i in range(5):
print(objetoPila.pop())