Behebe die fehlerhaft implementierte Lab-Klasse

PythonBeginner
Jetzt üben

Einführung

In diesem Projekt lernst du, wie du die Lab-Klasse im Backend-Code von LabEx implementierst und testest. Die Lab-Klasse ist ein Kernkomponenten, die ein Experiment innerhalb der LabEx-Plattform repräsentiert.

👀 Vorschau

lab.tags=['python', 'data science','machine learning']
Kann der Benutzer1 das Experiment starten: True
Kann der Benutzer2 das Experiment starten: False

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du die insert_tag-Methode implementierst, um sicherzustellen, dass keine doppelten Tags zum Lab-Objekt hinzugefügt werden
  • Wie du die can_be_started-Methode implementierst, um zu bestimmen, ob ein Benutzer das Experiment starten kann, wobei nur authentifizierte und Mitgliedsbenutzer dies tun dürfen
  • Wie du die Lab-Klasse testest, um sicherzustellen, dass sie wie erwartet funktioniert

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Die Wichtigkeit des richtigen Implementierens von Kernklassen in einem Backend-System zu verstehen
  • Die Fähigkeit zu demonstrieren, sauberen, wartbaren und fehlerfreien Code für eine Klasse zu schreiben
  • Erfahrungen im Testen und Validieren der Funktionalität einer Klasse zu sammeln

Implementiere die Lab-Klasse

In diesem Schritt lernst du, wie du die Lab-Klasse in der lab.py-Datei implementierst. Folge den Schritten unten, um diesen Schritt abzuschließen:

  1. Öffne die lab.py-Datei in deinem bevorzugten Code-Editor.
  2. Locate die Lab-Klassendefinition.
  3. Ändere die __init__-Methode in den folgenden Code:
def __init__(self, name, tags=None):
    self.name = name
    self._tags = [] if tags is None else [tags]
  1. Implementiere die insert_tag-Methode, um sicherzustellen, dass keine doppelten Tags in das Lab-Objekt eingefügt werden. Du kannst dies tun, indem du überprüfst, ob das Tag bereits in der self._tags-Liste vorhanden ist, bevor du es hinzufügst.
def insert_tag(self, tag):
    """Füge Tags hinzu und überprüfe, ob das Tag bereits vorhanden ist"""
    if tag not in self._tags:
        self._tags.append(tag)
  1. Implementiere die can_be_started-Methode, um zu bestimmen, ob der Benutzer das Experiment starten kann. Diese Methode sollte True zurückgeben, wenn der Benutzer authentifiziert und ein Mitglied ist, und False andernfalls.
def can_be_started(self, user):
    """Überprüfe, ob der Benutzer das Experiment starten kann, nur angemeldete Mitgliedsbenutzer können das Experiment starten"""
    if user.is_authenticated and user.is_member:
        return True
    else:
        return False
  1. Speichere die lab.py-Datei.

Teste die Lab-Klasse

In diesem Schritt wirst du die Lab-Klasse testen, um sicherzustellen, dass sie wie erwartet funktioniert. Folge den Schritten unten, um diesen Schritt abzuschließen:

  1. Öffne die lab.py-Datei in deinem Code-Editor.
  2. Locate den Code am Ende der Datei, der ein Lab-Objekt erstellt und die can_be_started-Methode testet.
  3. Führe die lab.py-Datei mit dem folgenden Befehl aus:
python lab.py
  1. Beobachte die Ausgabe, die wie folgt sein sollte:
lab.tags=['python', 'data science','machine learning']
Kann der Benutzer1 das Experiment starten: True
Kann der Benutzer2 das Experiment starten: False

Diese Ausgabe verifiziert, dass die Lab-Klasse wie erwartet funktioniert, mit dem folgenden Verhalten:

  • Das Lab-Objekt hat die erwarteten Tags ohne Duplikate.
  • Die can_be_started-Methode bestimmt korrekt, dass der authentifizierte und Mitgliedsbenutzer user1 das Experiment starten kann, der nicht authentifizierte und nicht Mitgliedsbenutzer user2 jedoch nicht.

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Labs ausprobieren, um deine Fähigkeiten zu verbessern.

✨ Lösung prüfen und üben✨ Lösung prüfen und üben