Corregir la clase Lab mal implementada

PythonBeginner
Practicar Ahora

Introducción

En este proyecto, aprenderás cómo implementar y probar la clase Lab en el código del backend de LabEx. La clase Lab es un componente central que representa un experimento dentro de la plataforma LabEx.

👀 Vista previa

lab.tags=['python', 'data science','machine learning']
¿Puede el usuario1 iniciar el experimento?: Verdadero
¿Puede el usuario2 iniciar el experimento?: Falso

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo implementar el método insert_tag para asegurarse de que no se agreguen etiquetas duplicadas al objeto de laboratorio
  • Cómo implementar el método puede_ser_iniciado para determinar si un usuario puede iniciar el experimento, permitiendo hacerlo solo a usuarios autenticados y miembros
  • Cómo probar la clase Lab para asegurarse de que funcione como se espera

🏆 Logros

Después de completar este proyecto, podrás:

  • Comprender la importancia de implementar adecuadamente las clases centrales en un sistema de backend
  • Demostrar la capacidad de escribir código limpio, mantenible y libre de errores para una clase
  • Adquirir experiencia en la prueba y validación de la funcionalidad de una clase

Implementar la clase Lab

En este paso, aprenderás cómo implementar la clase Lab en el archivo lab.py. Siga los pasos siguientes para completar este paso:

  1. Abra el archivo lab.py en su editor de código preferido.
  2. Localice la definición de la clase Lab.
  3. Modifique el método __init__ al siguiente código:
def __init__(self, name, tags=None):
    self.name = name
    self._tags = [] if tags is None else [tags]
  1. Implemente el método insert_tag para asegurarse de que no se inserten etiquetas duplicadas en el objeto de laboratorio. Puede hacer esto verificando si la etiqueta ya existe en la lista self._tags antes de agregarla.
def insert_tag(self, tag):
    """Insert tags and check if the tag already exists"""
    if tag not in self._tags:
        self._tags.append(tag)
  1. Implemente el método puede_ser_iniciado para determinar si el usuario puede iniciar el experimento. Este método debe devolver True si el usuario está autenticado y es miembro, y False en caso contrario.
def puede_ser_iniciado(self, user):
    """Check if the user can start the experiment, only logged-in member users can start the experiment"""
    if user.is_authenticated and user.is_member:
        return True
    else:
        return False
  1. Guarde el archivo lab.py.

Probar la clase Lab

En este paso, probarás la clase Lab para asegurarte de que funcione como se espera. Sigue los pasos siguientes para completar este paso:

  1. Abre el archivo lab.py en tu editor de código.
  2. Localiza el código al final del archivo, que crea un objeto Lab y prueba el método puede_ser_iniciado.
  3. Ejecuta el archivo lab.py usando el siguiente comando:
python lab.py
  1. Observa la salida, que debería ser:
lab.tags=['python', 'data science','machine learning']
¿Puede el usuario1 iniciar el experimento?: Verdadero
¿Puede el usuario2 iniciar el experimento?: Falso

Esta salida demuestra que la clase Lab está funcionando como se espera, con el siguiente comportamiento:

  • El objeto Lab tiene las etiquetas esperadas sin duplicados.
  • El método puede_ser_iniciado determina correctamente que el usuario autenticado y miembro user1 puede iniciar el experimento, pero el usuario no autenticado y no miembro user2 no puede.

Resumen

¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.

✨ Revisar Solución y Practicar✨ Revisar Solución y Practicar