Введение
В этом проекте вы научитесь реализовывать и тестировать класс Lab в коде backend LabEx. Класс Lab является ядром, представляющим эксперимент в платформе LabEx.
👀 Предварительный просмотр
lab.tags=['python', 'data science','machine learning']
может ли user1 запустить эксперимент: True
может ли user2 запустить эксперимент: False
🎯 Задачи
В этом проекте вы научитесь:
- Как реализовать метод
insert_tag, чтобы гарантировать, что дублирующиеся теги не добавляются в объект лаборатории - Как реализовать метод
can_be_started, чтобы определить, может ли пользователь запустить эксперимент, разрешая это только аутентифицированным и членским пользователям - Как протестировать класс
Lab, чтобы убедиться, что он работает как ожидается
🏆 Достижения
После завершения этого проекта вы сможете:
- Разобраться в важности правильной реализации ядрых классов в backend-системе
- Показать способность писать чистый, поддерживаемый и безошибочный код для класса
- Получить опыт в тестировании и проверке функциональности класса
Реализовать класс Lab
В этом шаге вы научитесь реализовывать класс Lab в файле lab.py. Следуйте шагам ниже, чтобы выполнить этот шаг:
- Откройте файл
lab.pyв предпочитаемом редакторе кода. - Найдите определение класса
Lab. - Измените метод
__init__на следующий код:
def __init__(self, name, tags=None):
self.name = name
self._tags = [] if tags is None else [tags]
- Реализуйте метод
insert_tag, чтобы гарантировать, что дублирующиеся теги не вставляются в объект лаборатории. Вы можете сделать это, проверив, существует ли тег уже в спискеself._tags, прежде чем добавить его.
def insert_tag(self, tag):
"""Insert tags and check if the tag already exists"""
if tag not in self._tags:
self._tags.append(tag)
- Реализуйте метод
can_be_started, чтобы определить, может ли пользователь запустить эксперимент. Этот метод должен возвращатьTrue, если пользователь аутентифицирован и является членом, иFalseв противном случае.
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
- Сохраните файл
lab.py.
Тестировать класс Lab
В этом шаге вы протестируете класс Lab, чтобы убедиться, что он работает как ожидается. Следуйте шагам ниже, чтобы выполнить этот шаг:
- Откройте файл
lab.pyв редакторе кода. - Найдите код внизу файла, который создает объект
Labи тестирует методcan_be_started. - Запустите файл
lab.pyс помощью следующей команды:
python lab.py
- Просмотрите вывод, который должен быть таким:
lab.tags=['python', 'data science','machine learning']
может ли user1 запустить эксперимент: True
может ли user2 запустить эксперимент: False
Этот вывод подтверждает, что класс Lab работает как ожидается, с поведением следующим:
- Объект
Labимеет ожидаемые теги без дубликатов. - Метод
can_be_startedправильно определяет, что аутентифицированный и членскийuser1может запустить эксперимент, а неаутентифицированный и нечленскийuser2- нет.
Резюме
Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.



