Module (12%)
Section (12%)

La pila - el enfoque orientado a objetos: continuación

Cualquier cambio que realices dentro del constructor que modifique el estado del parámetro self se verá reflejado en el objeto recien creado.

Esto significa que puedes agregar cualquier propiedad al objeto y la propiedad permanecerá allí hasta que el objeto termine su vida o la propiedad se elimine explícitamente.

Ahora agreguemos solo una propiedad al nuevo objeto - una lista para la pila. La nombraremos listaPila.

Justo como aqui:

class Pila: def __init__(self): self.listaPila = [] objetoPila = Pila() print(len(objetoPila.listaPila))

Nota:

  • Hemos usado la notación punteada, al igual que cuando se invocan métodos. Esta es la manera general para acceder a las propiedades de un objeto: debes nombrar el objeto, poner un punto (.) después de el, y especificar el nombre de la propiedad deseada, ¡no uses paréntesis! No deseas invocar un método, deseas acceder a una propiedad.
  • Si estableces el valor de una propiedad por primera vez (como en el constructor), lo estás creando; a partir de ese momento, el objeto tiene la propiedad y está listo para usar su valor.
  • Hemos hecho algo más en el código: hemos intentado acceder a la propiedad listaPila desde fuera de la clase inmediatamente después de que se haya creado el objeto; queremos verificar la longitud actual de la pila, ¿lo hemos logrado?

Sí, por supuesto: el código produce el siguiente resultado:

0

Esto no es lo que queremos de la pila. Nosotros queremos que listaPila este escondida del mundo exterior. ¿Es eso posible?

Sí, y es simple, pero no muy intuitivo.



Code

class Pila:
def __init__(self):
self.listaPila = []

objetoPila = Pila()
print(len(objetoPila.listaPila))
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×