介绍
在这个项目中,你将学习如何在 LabEx 后端代码中实现和测试 Lab 类。Lab 类是一个核心组件,代表 LabEx 平台内的一个实验。
👀 预览
lab.tags=['python', '数据科学', '机器学习']
用户1能否启动实验:是
用户2能否启动实验:否
🎯 任务
在这个项目中,你将学习:
- 如何实现
insert_tag方法,以确保不会向实验对象添加重复的标签 - 如何实现
can_be_started方法,以确定用户是否可以启动实验,只允许经过身份验证的成员用户这样做 - 如何测试
Lab类,以确保它按预期工作
🏆 成果
完成这个项目后,你将能够:
- 理解在后端系统中正确实现核心类的重要性
- 展示为一个类编写简洁、可维护且无错误代码的能力
- 获得测试和验证类功能的经验
实现实验类
在这一步中,你将学习如何在 lab.py 文件中实现 Lab 类。按照以下步骤完成此步骤:
- 在你喜欢的代码编辑器中打开
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):
"""插入标签并检查标签是否已存在"""
if tag not in self._tags:
self._tags.append(tag)
- 实现
can_be_started方法,以确定用户是否可以启动实验。如果用户已认证且是成员,则此方法应返回True,否则返回False。
def can_be_started(self, user):
"""检查用户是否可以启动实验,只有登录的成员用户才能启动实验"""
if user.is_authenticated and user.is_member:
return True
else:
return False
- 保存
lab.py文件。
测试实验类
在这一步中,你将测试 Lab 类,以确保它按预期工作。按照以下步骤完成此步骤:
- 在你的代码编辑器中打开
lab.py文件。 - 找到文件底部创建
Lab对象并测试can_be_started方法的代码。 - 使用以下命令运行
lab.py文件:
python lab.py
- 观察输出,应该是:
lab.tags=['python', '数据科学', '机器学习']
用户1能否启动实验:是
用户2能否启动实验:否
此输出验证了 Lab 类按预期工作,具有以下行为:
Lab对象具有预期的标签,没有任何重复项。can_be_started方法正确确定已认证且是成员的用户1可以启动实验,但未认证且不是成员的用户2不能启动。
总结
恭喜!你已完成此项目。你可以在 LabEx 中练习更多实验以提升你的技能。



