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
Instrucciones del ejercicio
- Añade un atributo de clase
_MAX_DAYSque 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 devuelvaTruesi los atributosdayymonthson menores o iguales que los valores máximos correspondientes, yFalseen caso contrario. ¡Asegúrate de referirte a los atributos de clase por sus nombres!
Ejercicio interactivo práctico
Prueba este ejercicio y completa el 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())