はじめに
このプロジェクトでは、LabEx のバックエンドコードにおける Lab クラスを実装してテストする方法を学びます。Lab クラスは、LabEx プラットフォーム内の実験を表すコアコンポーネントです。
👀 プレビュー
lab.tags=['python', 'data science','machine learning']
ユーザー1が実験を開始できるか: True
ユーザー2が実験を開始できるか: False
🎯 タスク
このプロジェクトでは、以下を学びます。
- 重複するタグが実験オブジェクトに追加されないようにするために、
insert_tagメソッドを実装する方法 - 実験を開始できるかどうかを判断し、認証済みのメンバーユーザーのみが実験を開始できるようにするために、
can_be_startedメソッドを実装する方法 Labクラスが期待通りに機能することを確認するために、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):
"""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']
ユーザー1が実験を開始できるか: True
ユーザー2が実験を開始できるか: False
この出力は、以下の動作を伴って Lab クラスが期待通りに機能していることを検証します。
Labオブジェクトには重複なしで期待されるタグがあります。can_be_startedメソッドは、認証済みのメンバーであるユーザー1が実験を開始できることを正しく判断しますが、認証されていない非メンバーのユーザー2は実験を開始できません。
まとめ
おめでとうございます!このプロジェクトを完了しました。LabEx でさらに多くの実験を行って、スキルを向上させることができます。



