ComenzarEmpieza gratis

Uso de atributos internos

En este ejercicio, volverás a la clase BetterDate del capítulo 2.

Decides añadir un método que compruebe la validez de la fecha, pero no quieres que forme parte de la interfaz pública de BetterDate.

La clase BetterDate está disponible en el panel de script.

Este ejercicio forma parte del curso

Programación orientada a objetos en Python

Ver curso

Instrucciones de ejercicio

  • Añade un atributo de clase _MAX_DAYS que almacene el número máximo de días de un mes - 31.
  • Añade otro atributo de clase que almacene el número máximo de meses de un año - 12. Utiliza la convención de nomenclatura adecuada para indicar que se trata de un atributo interno.
  • Añade un método _is_valid() que devuelva True si los atributos day y month son menores o iguales que los valores máximos correspondientes, y False en caso contrario. ¡Asegúrate de referirte a los atributos de clase por sus nombres!

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# Add class attributes for max number of days and months
class BetterDate:
    ____
    
    def __init__(self, year, month, day):
        self.year, self.month, self.day = year, month, day
        
    @classmethod
    def from_str(cls, datestr):
        year, month, day = map(int, datestr.split("-"))
        return cls(year, month, day)
    
    # Add _is_valid() checking day and month values
    ____
    
bd1 = BetterDate(2020, 4, 30)
print(bd1._is_valid())

bd2 = BetterDate(2020, 6, 45)
print(bd2._is_valid())
Editar y ejecutar código