diff --git a/dal/student_dal_json.py b/dal/student_dal_json.py index 83f6273..7de372d 100644 --- a/dal/student_dal_json.py +++ b/dal/student_dal_json.py @@ -167,6 +167,7 @@ class StudentDAL: self.save_students(students) return True return False + def update_student_partial(self, sid:str, name:Optional[str]=None, height:Optional[float]=None, birth_date:Optional[date]=None, enrollment_date:Optional[date]=None, class_name:Optional[str]=None) ->bool: students = self.load_students() for i, student in enumerate(students): diff --git a/model/Student.py b/model/Student.py index e9afce0..dafa680 100644 --- a/model/Student.py +++ b/model/Student.py @@ -22,6 +22,7 @@ class Student: self._validation_errors.append("姓名长度需在2-20个字符之间且为可打印字符") if not self.name.isprintable(): self._validation_errors.append("姓名长度需在2-20个字符之间") + def _validate_date(self) -> None: today = date.today() if self.birth_date > today: @@ -30,11 +31,14 @@ class Student: self._validation_errors.append('入学日期不能在未来') if self.birth_date > self.enrollment_date: self._validation_errors.append('入学日期不能早于出生日期') + @property def is_valid(self) -> bool: return len(self._validation_errors) == 0 + def get_errors(self) -> list[str]: return self._validation_errors.copy() + def __eq__(self, other) -> bool: if not isinstance(other, Student): return NotImplemented diff --git a/model/course.py b/model/course.py deleted file mode 100644 index e69de29..0000000 diff --git a/model/score.py b/model/score.py deleted file mode 100644 index e69de29..0000000 diff --git a/readme.txt b/readme.txt deleted file mode 100644 index e69de29..0000000 diff --git a/students_data.json b/students_data.json deleted file mode 100644 index e69de29..0000000