Behebe die fehlerhaft implementierte Lab-Klasse

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/ObjectOrientedProgrammingGroup(["Object-Oriented Programming"]) python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ObjectOrientedProgrammingGroup -.-> python/classes_objects("Classes and Objects") python/ObjectOrientedProgrammingGroup -.-> python/constructor("Constructor") subgraph Lab Skills python/conditional_statements -.-> lab-302729{{"Behebe die fehlerhaft implementierte Lab-Klasse"}} python/classes_objects -.-> lab-302729{{"Behebe die fehlerhaft implementierte Lab-Klasse"}} python/constructor -.-> lab-302729{{"Behebe die fehlerhaft implementierte Lab-Klasse"}} end

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.
✨ Lösung prüfen und üben

Zusammenfassung

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