我们通过类定义数据类型的属性(数据)和方法(行为),也就是说,“类将行为和状态打包在一起”。
类是抽象的,我们需要通过类这个模板,创建类的实例对象,之后才能使用类定义的功能。创建对象,即是通过定义构造函数 init ()方法,用于执行“实例对象的初始化工作”,即对象创建后,初始化当前对象的相关属性,无返回值。
定义类的语法格式:
class 类名:
类体
初始化在类的开头:
class 类名():
def __init__(self, 属性1, 属性2, 属性3, 属性4):
self.name = 属性1
self.id = 属性2
self.score = 属性3
self.grade = 属性4
def...(自己需要的方法)
要求:
1.类名必须符合“标识符”的规则;一般规定,首字母大写,多个单词使用“驼峰原则”;
2.类体中我们可以定义属性和方法;
3.属性用来描述数据,方法(即函数)用来描述这些数据相关的操作。
为了更好地管理班级,利用一个类Student来管理学生,这个类包含了学生姓名(str)、学号(str)、分数(int)、每次作业等级(list[str])等信息。请实现这样一个类,并定义构造方法实现初始化,定义打印函数实现打印学生的姓名、学号、分数、提交作业的次数、每次作业的等级。
(1)第一行输入字符串表示学生姓名。
(2)第二行输入字符串表示学生学号。
(3)第三行输入整数表示学生得分。
(4)第四行输入多个大写字母表示每次作业等级,用空格间隔。
(5)用一句话输出学生的姓名、学号、分数、提交作业的次数、每次作业的等级,可以参考样例。
输入:
Xiaoming
12345
90
A B C
输出:
Xiaoming's student number is 12345, and his grade is 90. He submitted 3 assignments, each with a grade of A B C
————————“定义类”————————
class Student():
def __init__(self, name, id, score, grade):
self.name = name
self.id = id
self.score = score
self.grade = grade
def __str__(self):
return(f"{self.name}'s student number is {self.id}, and his grade is {self.score}. He submitted {len(self.grade)} assignments, each with a grade of {' '.join(grade)}")
————————“输入”————————
name = input() # 输入为字符串
id = input() # 输入为字符串
score = int(input()) # 输入为整型
grade = input().split() # 用空格间隔连续输入
————————“调用类”————————
stu = Student(name,id,score,grade)
print(stu)