Corrigez la classe Lab mal implémentée

PythonBeginner
Pratiquer maintenant

Introduction

Dans ce projet, vous allez apprendre à implémenter et à tester la classe Lab dans le code backend de LabEx. La classe Lab est un composant clé qui représente une expérience dans la plateforme LabEx.

👀 Aperçu

lab.tags=['python', 'data science','machine learning']
Le membre user1 peut-il démarrer l'expérience : Vrai
Le membre user2 peut-il démarrer l'expérience : Faux

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment implémenter la méthode insert_tag pour vous assurer qu'aucune étiquette en double n'est ajoutée à l'objet lab
  • Comment implémenter la méthode can_be_started pour déterminer si un utilisateur peut démarrer l'expérience, en autorisant uniquement les utilisateurs authentifiés et membres à le faire
  • Comment tester la classe Lab pour vous assurer qu'elle fonctionne comme prévu

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Comprendre l'importance d'une implémentation correcte des classes clés dans un système backend
  • Montrer la capacité d'écrire un code propre, maintenable et exempt de bogues pour une classe
  • Gagner de l'expérience dans le test et la validation de la fonctionnalité d'une classe

Implémentez la classe Lab

Dans cette étape, vous allez apprendre à implémenter la classe Lab dans le fichier lab.py. Suivez les étapes ci-dessous pour terminer cette étape :

  1. Ouvrez le fichier lab.py dans votre éditeur de code préféré.
  2. Localisez la définition de la classe Lab.
  3. Modifiez la méthode __init__ avec le code suivant :
def __init__(self, name, tags=None):
    self.name = name
    self._tags = [] if tags is None else [tags]
  1. Implémentez la méthode insert_tag pour vous assurer qu'aucune étiquette en double n'est insérée dans l'objet lab. Vous pouvez le faire en vérifiant si l'étiquette existe déjà dans la liste self._tags avant de l'ajouter.
def insert_tag(self, tag):
    """Insère des étiquettes et vérifie si l'étiquette existe déjà"""
    if tag not in self._tags:
        self._tags.append(tag)
  1. Implémentez la méthode can_be_started pour déterminer si l'utilisateur peut démarrer l'expérience. Cette méthode devrait renvoyer True si l'utilisateur est authentifié et membre, et False sinon.
def can_be_started(self, user):
    """Vérifie si l'utilisateur peut démarrer l'expérience, seul l'utilisateur membre connecté peut démarrer l'expérience"""
    if user.is_authenticated and user.is_member:
        return True
    else:
        return False
  1. Enregistrez le fichier lab.py.

Testez la classe Lab

Dans cette étape, vous allez tester la classe Lab pour vous assurer qu'elle fonctionne comme prévu. Suivez les étapes ci-dessous pour terminer cette étape :

  1. Ouvrez le fichier lab.py dans votre éditeur de code.
  2. Localisez le code en bas du fichier, qui crée un objet Lab et teste la méthode can_be_started.
  3. Exécutez le fichier lab.py en utilisant la commande suivante :
python lab.py
  1. Observez la sortie, qui devrait être :
lab.tags=['python', 'data science','machine learning']
Le membre user1 peut-il démarrer l'expérience : Vrai
Le membre user2 peut-il démarrer l'expérience : Faux

Cette sortie vérifie que la classe Lab fonctionne comme prévu, avec le comportement suivant :

  • L'objet Lab a les étiquettes attendues sans doublon.
  • La méthode can_be_started détermine correctement que l'utilisateur authentifié et membre user1 peut démarrer l'expérience, mais que l'utilisateur non authentifié et non membre user2 ne peut pas.

Résumé

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.

✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer