Questions complémentaires

Questions complémentaires

Variable de classe

Dans cet exercice, il vous est demandé de programmer une classe Student . Chaque instance de cette classe représente un étudiant, ayant les caractéristiques suivantes :

  • Un prénom
  • Un nom de famille
  • Une date de naissance
  • Un courriel
  • Un NOMA (un numéro d'identification différent pour chaque étudiant et donné à la création de l'objet)

La représentation en format string de cet objet doit être, par exemple : _L'étudiant 27: Hervé Ducobu né le 1 avril, peut être contacté par **herve.ducobu@student.uclouvain.be**_ Pour cela vous êtes invités à implémenter la méthode __str__ .

System Message: WARNING/2 (<string>, line 20); backlink

Inline strong start-string without end-string.

Pour générer un numéro d'identification unique différent pour chaque étudiant, vous êtes conseillé à utiliser une variable de classe pour retenir le dernier numéro généré. Ce numéro est augmenté lors de chaque nouvelle création d'instance de cette classe. Il est déconseillé d'utiliser une variable globale au lieu d'une variable de classe.


        
        

Méthodes de classe

En tant que nouveau manager d'un centre d'expédition d'Amazon, vous devez créer une classe pour représenter les commandes.

Une commande a les attributs suivants :

l'id de l'acheteur ( id_buyer ) l'id de l'objet ( id_item ) la quantité ( quantity ) le prix de l'objet ( price )

Et doit avoir les méthodes suivantes :

  • get_price() : retourne le prix total de la commande
  • __str__() : retourne la commande sous le format : id_buyer, id_item : price * quantity = (price*quantity) Exemple : "12, 32 : 5 * 20 = 100"

Il doit aussi y avoir des méthodes de classe :

get_number_total_command() : retourne le nombre total de commandes effectuées get_total_price() : retourne le prix total de toutes les commandes

Nous allons créer l'objet avec :

command = Command(id_buyer, id_item, quantity_item, price_item)


        
        

Héritage

Commencez par implémenter une classe Animal, qui devrait avoir :

  • un attribut name qui est le nom que le joueur donnera à l'animal
  • un attribut diurnal qui doit être True si l'animal est actif pendant la journée et False s'il est actif pendant la nuit
  • un attribut nb_legs qui représente le nombre de pattes qu'a un animal
  • un attribut asleep qui sera mis à True (resp. False) avec l'appel à la fonction sleep() (resp. wake_up()). Si l'animal essaye de se réveiller alors qu'il n'est pas endormi ou s'il essaye de dormir alors qu'il dort déjà, votre programme devrait lever une RuntimeError.

Seul le name de l'animal doit être passé en argument au constructeur. Nous avons décidé de mettre asleep à False par défaut. Evidemment, comme cette classe représente n'importe quel animal, nous ne connaissons pas la valeur que les autres attributs devraient prendre. La chose la plus logique à faire serait donc de les mettre à None.

Vous implémenterez ensuite trois sous-classes différentes d'Animal réprésentant trois espèces différentes : Lion, Owl et Giraffe. Les valeurs des différents attributs de la classe parent devraient maintenant être définies dans les méthodes d'initialisation.

Lion aura une méthode additionnelle roar(), qui affichera ROARRR!!!.

Owl aura une méthode additionnelle fly(), qui ne fera rien (utilisez l'expression pass pour ne rien faire).

Giraffe aura un attribut additionnel neck_length (en mètres). Cette information sera donnée au constructeur de la classe. Notez que votre code ne devrait pas accepter de valeurs invalides pour cet attribut (les tailles négatives ou exprimées en chaines de caractères par exemple). Levez une ValueError dans le cas où vous avez une valeur invalide.

Vous implémenterez ensuite une dernière classe : Zoo , qui aura une liste de tous les animaux appelée animals comme attribut et une méthode add_animal(animal) pour remplir cette liste. Levez une ValueError si cette méthode reçoit quelque chose d'autre qu'un animal.

On vous demande enfin de définir une fonction create_my_zoo() qui retournera votre zoo contenant un lion, une chouette et deux girafes. Ce sont vos animaux, appelez les comme vous voulez ;)