python中的class类

示例代码

python 复制代码
# 定义一个学生类,用于管理学生的基本信息和成绩
class Student:
    # 初始化方法:创建学生实例时自动调用,初始化核心属性
    # 参数说明:self是实例本身(必须有),name是学生姓名,student_id是学号
    def __init__(self, name, student_id):
        # 实例属性:学生姓名
        self.name = name
        # 实例属性:学生学号
        self.student_id = student_id
        # 实例属性:成绩字典,初始三门科目成绩均为0
        self.grades = {"语文":0,"数学":0,"英语":0}

    # 定义设置成绩的方法:用于修改指定科目的成绩
    # 参数说明:course是科目名称,grade是要设置的成绩
    def set_grade(self, course, grade):
        # 校验:只有科目在成绩字典中时,才允许修改成绩
        if course in self.grades:
            self.grades[course] = grade

    # 定义打印成绩的方法:格式化输出学生的所有成绩信息
    def print_grades(self):
        # 修复原代码小问题:学号部分需用{self.student_id}嵌入f-string
        print(f"学生{self.name}(学号:{self.student_id})的成绩是:")
        # 遍历成绩字典,逐行打印科目和对应成绩
        for course in self.grades:
            print(f"{course}: {self.grades[course]}分")

# 实例化:创建名为"小陈"、学号"100618"的学生对象
chen = Student("小陈","100618")
# 调用set_grade方法:给小陈设置语文成绩92分
chen.set_grade("语文",92)
# 调用set_grade方法:给小陈设置数学成绩94分
chen.set_grade("数学",94)
# 调用print_grades方法:打印小陈的完整成绩信息
chen.print_grades()
相关推荐
大树学长9 小时前
【QT开发】Windows 10 + Qt 5.15.2 手动编译安装 Qt OPC UA 模块完整记录
开发语言·windows·qt
Evand J9 小时前
【课题推荐】强跟踪UKF算法,三维非线性状态量和观测量,附MATLAB代码测试结果
开发语言·算法·matlab
日光明媚10 小时前
TensorRT-LLM 中对 wan 加速流程与方法
人工智能·python·计算机视觉·stable diffusion·aigc
Promising_GEO10 小时前
全球综合评估模型-GCAM模型的安装与参数解读
开发语言·python·遥感·空间分析
XS03010610 小时前
并发编程二
java·开发语言
HMS工业网络10 小时前
STP、RSTP到N-Ring的演进之路
服务器·开发语言·php
历程里程碑10 小时前
54 深入解析poll多路复用技术
java·linux·服务器·开发语言·前端·数据结构·c++
.千余11 小时前
【Linux 】网络基础1
linux·运维·服务器·开发语言·网络·学习