誤って実装された実験クラスを修正する

PythonBeginner
オンラインで実践に進む

はじめに

このプロジェクトでは、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 クラスをどのように実装するかを学びます。以下の手順に従ってこのステップを完了しましょう。

  1. 好きなコードエディタで lab.py ファイルを開きます。
  2. Lab クラスの定義を見つけます。
  3. __init__ メソッドを以下のコードに変更します。
def __init__(self, name, tags=None):
    self.name = name
    self._tags = [] if tags is None else [tags]
  1. 重複するタグが実験オブジェクトに挿入されないようにするために、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)
  1. ユーザーが実験を開始できるかどうかを判断するために、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
  1. lab.py ファイルを保存します。

実験クラスをテストする

このステップでは、Lab クラスが期待通りに機能していることを確認するために、Lab クラスをテストします。以下の手順に従ってこのステップを完了しましょう。

  1. コードエディタで lab.py ファイルを開きます。
  2. ファイルの下部にあるコードを探して、Lab オブジェクトを作成して can_be_started メソッドをテストする部分を見つけます。
  3. 以下のコマンドを使用して lab.py ファイルを実行します。
python lab.py
  1. 出力を確認します。出力は以下のようになるはずです。
lab.tags=['python', 'data science','machine learning']
ユーザー1が実験を開始できるか: True
ユーザー2が実験を開始できるか: False

この出力は、以下の動作を伴って Lab クラスが期待通りに機能していることを検証します。

  • Lab オブジェクトには重複なしで期待されるタグがあります。
  • can_be_started メソッドは、認証済みのメンバーである ユーザー1 が実験を開始できることを正しく判断しますが、認証されていない非メンバーの ユーザー2 は実験を開始できません。

まとめ

おめでとうございます!このプロジェクトを完了しました。LabEx でさらに多くの実験を行って、スキルを向上させることができます。

✨ 解答を確認して練習✨ 解答を確認して練習