Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Duda sobre uso de getters y setters para distintos atributos #196

Open
7 tasks done
RatonHiperfoco opened this issue Sep 14, 2022 · 3 comments
Open
7 tasks done

Duda sobre uso de getters y setters para distintos atributos #196

RatonHiperfoco opened this issue Sep 14, 2022 · 3 comments
Assignees
Labels
Contenidos Dudas sobre contenidos Resuelto

Comments

@RatonHiperfoco
Copy link

Prerrequisitos

(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")

Duda

Hola! Definí properties para algunos atributos de la clase Programon y respectivos metodos Setter, sin embargo, ahora que lo hice, no sé muy bien qué atributos podrían/tendrían que ser properties igualmente, tanto en la clase programon con el resto de sus atributos, como para el resto de las clases. Me hace el mismo sentido que todos los atributos variables de las clases sean properties como asimismo no lo sean. h e l p
Saludos y gracias de antemano.

@Lord-Kelsier
Copy link

Hola, para distinguir si debe o no ser una property debes hacerte la siguiente pregunta:

  • ¿Es necesario mantener control sobre lo que puede o no puede ser una variable? es decir, quiero/necesito restringir los valores de una varible o hacer algo cuando una variable cambia

Si es asi necesita un setter.
Podrias ampliar esto a los getters.

  • ¿Es necesario mantener control sobre la lectura de una variable? es decir, quiero/necesito hacer algo cuando se lea una variable

Si es asi necesita un getter

@Lord-Kelsier Lord-Kelsier added Contenidos Dudas sobre contenidos and removed Tarea 1 labels Sep 14, 2022
@Lord-Kelsier Lord-Kelsier self-assigned this Sep 14, 2022
@RatonHiperfoco
Copy link
Author

Me queda claro! Muchas gracias, tengo una ultima duda. Es posible definir un setter sin definir un getter?

@Lord-Kelsier
Copy link

Así es! 😱
Sin emabrgo, seria algo extraño ya que las properties son un atributo más y por ende seria como definir un atributo que no se puede leer, solo modificar. Esto se logra con la función property

class A:
  def __init__(self):
    self._vida = 100
  def  vida(self, new_value):
    self._vida = new_value

  vida = property(None, vida)

Si ahora queremos ver el valor de vida el programa se cae, pero si queremos modificarlo no se cae. Si lo que quieres es ahorrar escribir el getter podrías hacer
vida = property(lambda self: self._vida, vida)
Esto lo saque de aqui
El comportamiento de las funciones lambda se verá al final del curso.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Contenidos Dudas sobre contenidos Resuelto
Projects
None yet
Development

No branches or pull requests

2 participants