根据类来创建对象称为实例化;创建好类后,再创建特定的对象。
__init__() ➡️ 前后都是双下划线:使用时,必须初始化属性,后面使用形参也必须使用a.b的形式,而不是单纯使用b。但是对于定义的其他函数,括号里只需要有一个公用的形参来传递即可。在调用函数时,括号里不需要写东西;除非是增删改,本身定义增删改函数时,括号里就有两个参数,我们只需要在调用时填第二个就行。
增删改 -- 3种方法:
1. 直接改
2. 创建一个新的,可以直接输入新数的函数
3. 创建一个新的,但用于增减的函数
【题目】⬇️
学生群体是个大类,有姓名、性别、年龄三个属性;现在加上平时成绩,初始平时成绩 = 0;运用三种方法,使平时成绩变成60
法1:直接插入
# 创建学生大类 类名首字母大写
class Student:
# 初始化属性
def __init__(self, name, gender, age):
self.name = name
self.gender = gender
self.age = age
# 完成题目第一条要求,加入平时成绩属性
# 法1 直接插入
self.grade = 0 # 可以直接把0改成60即完成操作
# 定义新函数 打印学生的姓名和年龄
def get_descriptive(self):
print(f"This student's name is {self.name} and he/she is {self.age} years old.")
print(f"The grade is {self.grade}.")
# 定义特定对象
a_student = Student("Lily", "female", 12)
#注意,这里括号里没有东西
a_student.get_descriptive()
法2:通过函数修改属性的值
# 创建学生大类 类名首字母大写
class Student:
# 初始化属性
def __init__(self, name, gender, age):
self.name = name
self.gender = gender
self.age = age
# 完成题目第一条要求,加入平时成绩属性
# 法1 直接插入
self.grade = 0 # 需要修改直接把0改成60
#法2:定义函数,修改属性
def update_grade(self, new_grade):
self.grade = new_grade
# 定义新函数 打印学生的姓名和年龄
def get_descriptive(self):
print(f"This student's name is {self.name} and he/she is {self.age} years old.")
print(f"The grade is {self.grade}.")
# 定义特定对象
a_student = Student("Lily", "female", 12)
a_student.update_grade(60)
#注意,这里括号里没有东西
a_student.get_descriptive()
法3:使用增删函数
# 创建学生大类 类名首字母大写
class Student:
# 初始化属性
def __init__(self, name, gender, age):
self.name = name
self.gender = gender
self.age = age
# 完成题目第一条要求,加入平时成绩属性
# 法1 直接插入
self.grade = 0 # 需要修改直接把0改成60
# 法2:定义函数,修改属性
def update_grade(self, new_grade):
self.grade = new_grade
# 法3:增减函数
def increment_grade(self, increment_grade):
self.grade += increment_grade
# 定义新函数 打印学生的姓名和年龄
def get_descriptive(self):
print(f"This student's name is {self.name} and he/she is {self.age} years old.")
print(f"The grade is {self.grade}.")
# 定义特定对象
a_student = Student("Lily", "female", 12)
a_student.update_grade(30)
a_student.increment_grade(30)
#注意,这里括号里没有东西
a_student.get_descriptive()