1

以下のコードを見てください

class MyStudent:
    def __init__(self, student_id, student_name):
        self._student_id = student_id
        self._student_name = student_name

    def get_student_id(self):
        return self._student_id

    def get_student_name(self):
        return self._student_name


student1 = MyStudent(student_id=123, student_name="ABC")
student1.get_student_id()
student1.get_student_name()

student1.get_student_id()orstudent1.get_student_name()が呼び出されるたびに (またはget () がアクセスされたときに) DB に学生を追加するようなコードを実行したいと思います。間違った記述子を使用した場合は修正してください)。そして、以下のような複数のクラスに対してのみデコレータを介してこれを行う必要があります

@save_student_to_db
class MyStudent:......

デコレータを使用してこれをどのように達成できますか? 任意のメソッドを持つことができる複数のクラスに対して単一のデコレータを使用する必要があります。任意のクラスの任意のメソッド (_ または __ で始まるものを除く) が呼び出されるたびに、デコレーターはデータを DB に保存する必要があります。

4

1 に答える 1