首页 > 其他分享 >5.8

5.8

时间:2024-05-09 22:56:34浏览次数:19  
标签:__ name 5.8 gender self date age

今天学习python实验,本次的实验为python中的实体类 ,随着实验的进行,让我发现它的实体类和c c++ java的实体类大同小异,只需要记住相关写法,着重记一点区别,就能很快适应python实体类的书写。

# 定义人员类People
class People:
    def __init__(self, name, gender, age):
        self.name = name
        self.gender = gender
        self.age = age

    def __str__(self):
        return f"姓名:{self.name},性别:{self.gender},年龄:{self.age}"


# 基于People实现学生类Student
class Student(People):
    def __init__(self, name, gender, age, student_id, enrollment_date, entrance_score):
        super().__init__(name, gender, age)
        self.student_id = student_id
        self.enrollment_date = enrollment_date
        self.entrance_score = entrance_score

    def __str__(self):
        return f"{super().__str__()},学号:{self.student_id},入学日期:{self.enrollment_date},入学成绩:{self.entrance_score}"


# 基于People实现教师类Teacher
class Teacher(People):
    def __init__(self, name, gender, age, position, department, work_start_date):
        super().__init__(name, gender, age)
        self.position = position
        self.department = department
        self.work_start_date = work_start_date

    def __str__(self):
        return f"{super().__str__()},职位:{self.position},部门:{self.department},入职日期:{self.work_start_date}"


# 基于Student实现研究生类Graduate
class Graduate(Student):
    def __init__(self, name, gender, age, student_id, enrollment_date, entrance_score, reacher_direction, supervisor):
        super().__init__(name, gender, age, student_id, enrollment_date, entrance_score)
        self.reacher_direction = reacher_direction
        self.supervisor = supervisor

    def __str__(self):
        return f"{super().__str__()},研究方向:{self.reacher_direction},指导老师:{self.supervisor}"


# 修改在职研究生类GradOnWork,体现既是学生也是教师的特点
class GradOnWork(Graduate):
    def __init__(self, name, gender, age, student_id, enrollment_date, entrance_score, reacher_direction, supervisor,
                 teacher_position="兼职讲师", teacher_department="兼职部门", teacher_work_start_date="工作时间"):
        super().__init__(name, gender, age, student_id, enrollment_date, entrance_score, reacher_direction, supervisor)
        self.teacher = Teacher(name, gender, age, teacher_position, teacher_department, teacher_work_start_date)

    def __str__(self):
        return f"{super().__str__()}\n,教师信息:{self.teacher}"


# 测试代码
student1 = Student("张三", "男", 20, "20223735", "2022-9-21", 555)
teacher1 = Teacher("李四", "男", 30, "讲师", "信息科学与技术", "2022-9-21")
graduate1 = Graduate("王五", "男", 25, "20223736", "2022-9-21", 555, "人工智能", "李四")
grad_on_work1 = GradOnWork("赵六", "男", 28, "20223737", "2022-9-21", 555, "人工智能", "李四", "兼职讲师",
                           "马克思主义学院", "2023-09-01")
print("学生信息 ")
print(student1)
print("\n教师信息 ")
print(teacher1)
print("\n研究生信息 ")
print(graduate1)
print("\n在职研究生信息 ")
print(grad_on_work1)

 

【题目描述】定义一个人员类People,其属性有:姓名、性别、年龄;基于People实现学生类Student,添加属性:学号、入学时间和入学成绩;基于People实现教师类Teacher,添加属性:职务、部门、工作时间;基于Student实现究生类Graduate,添加属性:研究方向和导师,分别定义其中的构造函数和输出函数。程序中定义各种类的对象,并完成测试。 基于以上类利用接口实现在职研究生类 GradOnWork。

程序中定义各种类的对象,并完成测试。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。

标签:__,name,5.8,gender,self,date,age
From: https://www.cnblogs.com/zzqq1314/p/18183259

相关文章

  • Scrum冲刺2--5.8
    Scrum冲刺2--5.8这个作业属于哪个课程软件工程这个作业要求在哪里团队项目这个作业的目标制作规格说明书,明确分工,制定计划安排前端仓库前端后端仓库后端每次冲刺日志索引时间博客5.7Day1ᕙ(`▿´)ᕗ5.8Day2ᕙ(•ູ॒•)ᕘ目录Scr......
  • 5.8
    ```@ComposablefunOnboardingScreen(onContinueClicked:()->Unit,modifier:Modifier=Modifier){Column(modifier=modifier.fillMaxSize(),verticalArrangement=Arrangement.Center,horizontalAlignment=Alignment.Cent......
  • 5.8——前端api
    文章分类模块importrequestfrom"@/utils/request.js";//import{useTokenStore}from"@/stores/token.js";//文章分类列表查询//文章分类列表查询exportconstarticleCategoryListService=()=>{//获取token状态//consttokenStore=useTokenStore();//通过......
  • 4.16 ~ 5.8 清北夏令营模拟赛总结(10)
    Day1\(0+0+0+0=0,rk(max)\)。完全不会,这也是意料之中。没做好的地方:1、没打暴力,垫底无所谓,但是要认真对待2、时间分配,T1过多T234过少T1:Hall定理,观察字符集数量小,可以用Hall定理枚举所有子集,判断是否有解。注意题目中的每个信息都有它的用处,如果做法没用上,考虑是不是......
  • ANSYS HFSS WIFI 2.4G&5.8G双频板载天线仿真
    1.设计信息板材DR:4.4板厚:1.6mm天线频段:2.4GHz、5.8GHz 2.计算出2.4GHz、5.8GHz对应的介质波长、空间波长,利用公式:λ=c/f计算2.45GHz:58~122mm1/4介质波长~1/4空间波长:14.5~31.5mm 5.8GHz:25~52mm1/4介质波长~1/4空间波长:6~13mm 3. 天线初步规划设计参数 4.打......
  • 这可能是国内Qt/C++界最受欢迎开源项目之一/5.8Kstar/持续迭代更新
    一、前言本项目大概在2020年开始的,大概在2022年重写了一遍,主要是分门别类存放。本项目主要是QWidget编写的一些开源的demo,支持Qt4、Qt5、Qt6,支持任意系统,预计会有100多个,一直持续更新完善,代码简洁易懂注释详细,每个都是独立项目,非常适合初学者,代码随意传播使用。不仅有界面UI相关,......
  • Windows 安装 MySQL 5.8 -- 输入3次 密码错误锁定账户
    安装下载地址:https://downloads.mysql.com/archives/installer/需要有.netframework4.5.2及以上版本才能安装MySQL5.8选择自定义安装选择要安装的服务修改安装路径设置ROOT密码,测试错误锁定帐号MySQL8.0.19版本之后,新增了一个功能,支持了输入3次......
  • PMP-5.8 实施风险应对
    ########################################风险重点在于规划,执行过程组中实施风险应对需根据风险管理计划执行商定的风险应对措施。如果有经验教训登记册,可参照执行。########################################一、实施风险应对基础内容 0.涉及领域:风险管理计划(1)风险......
  • Ant Design 5.8.6 发布,企业级 UI 设计语言和 React 实现
    AntDesign5.8.6发布,企业级UI设计语言和React实现来源:OSCHINA编辑: 白开水不加糖2023-09-0310:31:02 0AntDesign 5.8.6 现已发布,主要变化如下: 针对CSSInJS加载styles大小进行了优化。Notification和Message组件只有在展示时才会插入对......
  • 5.8 汇编语言:汇编高效除法运算
    通常情况下计算除法会使用div/idiv这两条指令,该指令分别用于计算无符号和有符号除法运算,但除法运算所需要耗费的时间非常多,大概需要比乘法运算多消耗10倍的CPU时钟,在Debug模式下,除法运算不会被优化,但Release模式下,除法运算指令会被特定的算法经过优化后转化为为乘法,这样就可以提高......