Corrigir a Classe Lab Implementada Incorretamente

PythonBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como implementar e testar a classe Lab no código backend do LabEx. A classe Lab é um componente central que representa um experimento dentro da plataforma LabEx.

👀 Pré-visualização

lab.tags=['python', 'data science', 'machine learning']
can user1 started the experiment: True
can user2 started the experiment: False

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como implementar o método insert_tag para garantir que tags duplicadas não sejam adicionadas ao objeto lab
  • Como implementar o método can_be_started para determinar se um usuário pode iniciar o experimento, permitindo que apenas usuários autenticados e membros o façam
  • Como testar a classe Lab para garantir que ela está funcionando conforme o esperado

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Compreender a importância de implementar corretamente classes centrais em um sistema backend
  • Demonstrar a capacidade de escrever código limpo, sustentável e livre de erros para uma classe
  • Adquirir experiência em testar e validar a funcionalidade de uma classe

Implementar a Classe Lab

Nesta etapa, você aprenderá como implementar a classe Lab no arquivo lab.py. Siga as etapas abaixo para concluir esta etapa:

  1. Abra o arquivo lab.py no seu editor de código preferido.
  2. Localize a definição da classe Lab.
  3. Modifique o método __init__ para o seguinte código:
def __init__(self, name, tags=None):
    self.name = name
    self._tags = [] if tags is None else [tags]
  1. Implemente o método insert_tag para garantir que tags duplicadas não sejam inseridas no objeto lab. Você pode fazer isso verificando se a tag já existe na lista self._tags antes de adicioná-la.
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 o método can_be_started para determinar se o usuário pode iniciar o experimento. Este método deve retornar True se o usuário estiver autenticado e for membro, e False caso contrário.
def can_be_started(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. Salve o arquivo lab.py.

Testar a Classe Lab

Nesta etapa, você testará a classe Lab para garantir que ela está funcionando conforme o esperado. Siga as etapas abaixo para concluir esta etapa:

  1. Abra o arquivo lab.py no seu editor de código.
  2. Localize o código na parte inferior do arquivo, que cria um objeto Lab e testa o método can_be_started.
  3. Execute o arquivo lab.py usando o seguinte comando:
python lab.py
  1. Observe a saída, que deve ser:
lab.tags=['python', 'data science', 'machine learning']
can user1 started the experiment: True
can user2 started the experiment: False

Esta saída verifica que a classe Lab está funcionando conforme o esperado, com o seguinte comportamento:

  • O objeto Lab possui as tags esperadas sem quaisquer duplicatas.
  • O método can_be_started determina corretamente que o user1, autenticado e membro, pode iniciar o experimento, mas o user2, não autenticado e não membro, não pode.

Resumo

Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.

✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar