You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Mi duda no se trata de un tema administrativo o personal, ya que en ese caso debo contactar a mi profe, al Jefe de Bienestar o al correo del curso (iic2233@ing.puc.cl).
Utilizaré un título descriptivo y llenaré correctamente esta plantilla.
De ser necesario, colocaré código simple que permita explicar mi problema o duda.
Duda
[Estoy perdida con el uso de properties. Si quiero poner una property en una super clase para que las subclases la sobreescriban, pero esta corresponde a un parámetro fijo ¿cómo lo puedo hacer? Ej:
En la super clase: @Property
def atributo(self):
return self.__atributo
Ahora, si quiero sobre escribir ese atributo, asignándole un parámetro fijo en las subclases, se debe escribir arriba el @Property? y la salida debe ser con una igualdad o con un return? Busqué en contenidos y en la ayudantía pero no vi nada parecido. Espero que me puedan ayudar.]
The text was updated successfully, but these errors were encountered:
Josefinafp
changed the title
Título descriptivo (reemplazar con el título apropiado)
uso de properties
Sep 7, 2022
Creo que no estoy entendiendo tu pregunta. A que te refieres con asignarle un parametro fijo? A que salida te refieres?
Igualmente te hago una breve explicacion de las properties.
Las properties se comportan como un atributo mas, solo que te ofrecen control sobre su lectura, escritura y eliminacion. Un ejemplo de aplicacion es un contador de vidas.
classMario:
def__init__(self):
self._vidas=3@propertydefvidas(self):
print("Alguien esta mirando mis vidas")
returnself._vidas@vidas.setterdefvidas(self, new_value):
ifnew_value<=0:
print("juego terminado")
self._vidas=0else:
self._vidas=new_valuemario=Mario()
print(mario.vidas)
mario.vidas-=10print(mario.vidas)
#output# Alguien esta mirando mis vidas# 3# Alguien esta mirando mis vidas# juego terminado# Alguien esta mirando mis vidas# 0
Si ahora heredamos esta clase podemos seguir usarndo las properties
classLuigi(Mario):
def__init__(self):
self._vidas=20luigi=Luigi()
print(luigi.vidas)
luigi.vidas-=10print(luigi.vidas)
#output# Alguien esta mirando mis vidas# 20# Alguien esta mirando mis vidas ----> notar que no perdimos esta vez ya que luigi tiene 20 vidas# Alguien esta mirando mis vidas# 10
Si quieres reescribir las properties para una subclase, te recomiendo escribirlas de nuevo, ya que, estuve haciendo unas pruebas y no he conseguido que salga sin arrojar errores o sin usar el nombre de la superclase
Prerrequisitos
(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")
Duda
[Estoy perdida con el uso de properties. Si quiero poner una property en una super clase para que las subclases la sobreescriban, pero esta corresponde a un parámetro fijo ¿cómo lo puedo hacer? Ej:
En la super clase:
@Property
def atributo(self):
return self.__atributo
Ahora, si quiero sobre escribir ese atributo, asignándole un parámetro fijo en las subclases, se debe escribir arriba el @Property? y la salida debe ser con una igualdad o con un return? Busqué en contenidos y en la ayudantía pero no vi nada parecido. Espero que me puedan ayudar.]
The text was updated successfully, but these errors were encountered: