IIC2233 / Syllabus

136 stars 11 forks source link

Método presentarse Jardin ¿str o repr? #376

Open martinpint opened 1 week ago

martinpint commented 1 week ago

Prerrequisitos

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

Duda

Hola buenas, tengo 2 preguntas. En la imagen adjunta del enunciado, para el método presentarse, si o si se debe usar __str__ o también se puede usar __repr__??

Y lo otro, este método puede recibir un parámetro, por ejemplo la temperatura?, o debe ser capaz de imprimirse sin necesidad de recibir parámetros?

Captura de pantalla 2024-09-12 a la(s) 10 41 33 p  m
rodrigoaguilera15 commented 1 week ago

Tienes que utilizar __str__. Dicho simple, __str__ es para mostrar el objeto de una forma amigable, y __repr__ es para mostrarlo de forma detallada. Adjunto un ejemplo extraído de geeksforgeeks.org. Respecto a lo segundo: no, no puede recibir parámetros. Captura de pantalla 2024-09-12 232958

martinpint commented 1 week ago

Hola, lo que pasa es que __repr__ me ayudaba al momento de querer interactuar con mi plano del jardin, ahora para cambiarlo a __str__ tendría que modificar bastante el código, ¿Si lo dejo con __repr__ me descontarán puntaje?

rodrigoaguilera15 commented 1 week ago

Hola @martinpint , dado que el enunciado exige que uses __str__, sí tendrías al un descuento, específicamente bajo el criterio de Formato de entrega. Sin embargo, probablemente sea un descuento no muy alto. Si quieres más información, te recomiendo revisar las bases generales de las tareas que se encuentra en syllabus/tareas y también la distribución de puntajes, cuyo enlace está al principio de la sección 9 del enunciado. Mucho éxito.

martinpint commented 1 week ago

Hola, sobre eso. Que pasa si yo utilizo repr en cada planta, netamente para representarla en el menú, pero utilizo str en Jardin cuando quiera imprimir el estado de mi jardin, que es lo que piden en el enunciado. Estaría correcto?

rodrigoaguilera15 commented 1 week ago

Tendrás que usar __str__ en este caso también. El __repr__ se usa para que tú, como desarrollador del código, tengas una representación legible de la instancia, para facilitar el debugueo y esas cosas. El __str__ está pensado para ser la forma en que la instancia se le muestra al usuario. Esta tarea y todas la demás se tienen que crear pensando en que la pueda ejecutar correctamente un usuario, así que siempre __str__.