Module (14%)
Section (15%)

El enfoque orientado a objetos: una pila desde cero

Tener tal clase abre nuevas posibilidades. Por ejemplo, ahora puedes hacer que más de una pila se comporte de la misma manera. Cada pila tendrá su propia copia de datos privados, pero utilizará el mismo conjunto de métodos.

Esto es exactamente lo que queremos para este ejemplo.

Analiza el código:

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 objetoPila1 = Pila() objetoPila2 = Pila() objetoPila1.push(3) objetoPila2.push(objetoPila1.pop()) print(objetoPila2.pop())

Existen dos pilas creadas a partir de la misma clase base. Trabajan independientemente. Puedes crear más si quieres.

Ejecuta el código en el editor y ve qué sucede. Realiza tus propios experimentos.



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


objetoPila1 = Pila()
objetoPila2 = Pila()

objetoPila1.push(3)
objetoPila2.push(objetoPila1.pop())

print(objetoPila2.pop())
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×