项目类型一览
本项目所涉及的类型一览
注意!
ExtraRank
现在暂时无法使用
提示
可以使用import zhixuewang.models
来导入这些类型
总览
类型名 | 实现 | 备注 |
---|---|---|
Exam | 见下方 | 考试 |
ExamInfo | 见下方 | 继承Exam类 |
ExtendedList | 见下方 | 继承List |
ExtraRank | 见下方 | 分数额外信息 |
Grade | name: str , code: str , phase: Phase | 年级 |
Mark | exam: Exam , person: StuPerson | 考试成绩 |
Person | 见下方 | 基本属性 |
Phase | name: str , code: str | 学期 |
School | id: str , name: str | 学校 |
Sex | 无 | 性别 |
StuClass | 见下方 | 班级 |
StuPerson | 见下方 | 学生信息 |
StuPersonList | 见下方 | 继承ExtendedList |
Subject | 见下方 | 学科 |
SubjectScore | 见下方 | 学科成绩 |
SubjectTable | 暂未实现 | 暂无 |
实现部分
Exam
实现
class Exam
(id: str = '',
name: str = '',
status: str = '',
grade_code: str = '',
subject_codes: ExtendedList[str][str] = <factory>,
schools: ExtendedList[School][School] = <factory>,
create_school: School = <factory>,
create_user: Person = <factory>,
_create_timestamp: float = 0,
_exam_timestamp: float = 0,
_complete_timestamp: float = 0,
class_rank: int = 0,
grade_rank: int = 0,
is_final: bool = False):
pass
解释
注意
class_rank
与grade_rank
暂时不可用
参数名 | 类型 | 注解 |
---|---|---|
id | str | 该次考试的唯一ID(examId ) |
name | str | 本次考试的名称(如XX中学期中考试 ) |
status | str | 不明,无法取值 |
grade_code | str | 年级ID(如07 指7年级) |
schools | ExtendList | 学校 |
subject_codes | ExtendList | 学科代码 |
create_school | School | 创建的学校 |
class_rank | int | 班级排名,失效 |
注意
status
, schools
, subject_codes
, create_school
, class_rank
, grade_rank
等均暂时失效。
ExamInfo
实现
提示
本类继承自Exam
class ExamInfo(
id: str = '',
name: str = '',
status: str = '',
grade_code: str = '',
subject_codes: ExtendedList[str] = <factory>,
schools: ExtendedList[School] = <factory>,
create_school: School = <factory>,
create_user: Person = <factory>,
_create_timestamp: float = 0,
_exam_timestamp: float = 0,
_complete_timestamp: float = 0,
class_rank: int = 0,
grade_rank: int = 0,
is_final: bool = False,
classId: str = '',
subjects: ExtendedList[Subject] = <factory>):
pass
其他同上,但subjects
属性可以获得每门考试对应的学科ID(paperId
或topicsetId
)
可以通过get_exam()
来获得。
ExtendList(I: List[T] = None)
实现
提示
本类继承自list
, typing.Generic
扩展列表,方便寻找。
实现的方法:
def find(f: Callable([T], bool)) -> T:
pass
返回列表内满足函数f
的第一个元素
def find_all(f: Callable[[T], bool]) → List[T]:
pass
返回列表内所有满足函数f
的元素
def find_all_by_id(id: str) -> List[T]:
pass
返回列表内所有特定id
的元素
def find_all_by_name(name: str) -> List[T]:
pass
返回列表内所有名字为name
的元素
def find_by_id(id: str) -> T:
pass
返回列表里第一个ID为id
的元素
def find_by_name(name: str) -> T:
pass
返回列表里第一个name为name
的元素
ExtraRank
实现
class ExtraRank(
rank: int = 0,
avg_score: float = 0,
low_score: float = 0,
high_score: float = 0):
pass
关于分数的额外信息,暂时无法使用。
Grade
实现
class Grade(
name: str = '',
code: str = '',
phase: Phase = <factory>):
pass
年级(暂时还没找到在哪里实现了)
Mark
实现
提示
本类继承自ExtendedList
class Mark(
l: list = None,
exam: Exam = None,
person: StuPerson = None):
pass
考试的成绩
Person
实现
class Person(
id: str = '',
name: str = '',
gender: Sex = <Sex.GIRL: '女'>,
email: str = '',
mobile: str = '',
qq_number: str = '',
_birthday_timestamp: float = 0,
avatar: str = ''):
pass
用户基本属性。
参数名 | 类型 | 解释 |
---|---|---|
id | str | 用户的唯一ID |
name | str | 用户的名称 |
gender | Sex | 性别,默认女 |
str | 邮箱 | |
mobile | str | 手机号码 |
qq_number | str | QQ号 |
_birthday_timestamp | float | 生日 |
avatar | str | 头像 |
Phase
实现
class Phase(name: str='', code: str=""):
pass
学期,如七年级,八年级等
School
实现
class School(id: str="",name: str=""):
pass
学校,id
是该学校唯一的id,name
是该学校的名称,如“XX市XX中学"
Sex
实现
提示
继承自Enum
class Sex
性别
StuClass
实现
class StuClass(
id: str = '',
name: str = '',
grade: Grade = <factory>,
school: School = <factory>):
pass
班级,id
是该班级的唯一编号,name
是该班级的友好名称(如高中 2022年1班
, 初中 2022年1班
,小学 2022年1班
)
StuPerson
实现
提示
继承自Person
class StuPerson(
id: str = '',
name: str = '',
gender: Sex = <Sex.GIRL: '女'>,
email: str = '',
mobile: str = '',
qq_number: str = '',
_birthday_timestamp: float = 0,
avatar: str = '',
code: str = '',
clazz: StuClass = <factory>):
pass
学生信息,code
是准考证号,id
是学生的唯一编号
StuPersonList
实现
提示
继承自ExtendedList
def find_all_by_clazz(clazz: StuClass) -> ExtendedList[StuPerson][StuPerson]:
pass
返回所有班级为clazz
的学生