CommencerCommencer gratuitement

Utilisation des attributs internes

Dans cet exercice, vous reviendrez à la classe BetterDate du chapitre 2.

Vous décidez d'ajouter une méthode qui vérifie la validité de la date, mais vous ne voulez pas l'intégrer à l'interface publique de BetterDate.

La classe BetterDate est disponible dans le volet de script.

Cet exercice fait partie du cours

Programmation orientée objet en Python

Afficher le cours

Instructions

  • Ajoutez un attribut de classe _MAX_DAYS stockant le nombre maximal de jours dans un mois - 31.
  • Ajoutez un autre attribut de classe stockant le nombre maximal de mois dans une année - 12. Utilisez la convention d'appellation appropriée pour indiquer qu'il s'agit d'un attribut interne.
  • Ajoutez une méthode _is_valid() qui renvoie True si les attributs day et month sont inférieurs ou égaux aux valeurs maximales correspondantes, et False dans le cas contraire. Veillez à désigner les attributs de la classe par leur nom !

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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())
Modifier et exécuter le code