class NameOfClass:
#class声明,后面跟上类的名字,类后加冒号,代表下方是定义类的代码
#定义类的一些代码
#
python在定义类名时,用Pascal命名风格,用大写字母进行分割单词
作用:定义实例对象的属性
必须被命名为init,前后必须分别有两个下划线,括号里面可以放任意数量的参数
但第一个参数永远被占用,用于表示对象自身,约定俗称self。
作用:帮助把属性的值绑定在实例对象上
例:死板的init方法
class dog:
#思考该类的对象都有什么属性
def __init__(self):
self.name = "Pup" #将该值看成对象的属性
#若前面没有self,代码为name = "Pup",意为只是给普通的name赋值变量
#调用dog创建对象:
dog1 = dog()
#此时,dog1的name属性会被赋值为Pup
#获取对象的属性,用对象.属性名来获取
print(dog1.name)
#会返回dog1对象所绑定的name属性的值
例:调用参数对属性赋值
class dog:
#思考该类的对象都有什么属性
def __init__(self,name):
self.name = name #将该值看成对象的属性
#若前面没有self,代码为name = "Pup",意为只是给普通的name赋值变量
#调用dog创建对象:
dog1 = dog("Pup")
#此时,dog1的name属性会被赋值为Pup
#获取对象的属性,用对象.属性名来获取
print(dog1.name)
#会返回dog1对象所绑定的name属性的值
例:多个参数
class dog:
#思考该类的对象都有什么属性
def __init__(self,name,color,age):
self.name = name #将该值看成对象的属性
self.color = color
self.age = age
#若前面没有self,代码为name = "Pup",意为只是给普通的name赋值变量
#调用dog创建对象:
dog1 = dog("Pup","blue",2) #对定义的属性进行赋值
#此时,dog1的name属性会被赋值为Pup
#获取对象的属性,用对象.属性名来获取
print(f"小狗的名字为{dog1.name},年龄为{dog1.age},颜色为{dog1.color}")
#会返回dog1对象所绑定的name属性的值
表示对象能做什么事
与定义普通函数差不多,仅有两个区别
1、写在class里面,前面要有缩进,表示属于该类的方法
2、第一个参数被占用(与init一样),用于表示对象自身self
作用:在方法里面,获取或修改和对象绑定的属性
调用结果会根据属性的不同而改变
对象.方法名()
#括号中加入调用参数,不需要手动将self参数传入
class Student:
def __init__(self, name, number, score_chin, score_math, score_eng):
#初始化
self.name = "none"
self.number = "none"
self.score_chin = "0"
self.score_math = "0"
self.score_eng = "0"
#赋值
self.name = name
self.number = number
self.score_chin = score_chin
self.score_math = score_math
self.score_eng = score_eng
def score_print(self):
print(
f"该学生姓名为{self.name},语文成绩为{self.score_chin},数学成绩为{self.score_math},英语成绩为{self.score_eng}")
student1 = Student("Tina", 1001, 50, 60, 70)
student1.score_print()
class Student:
def __init__(self, name, id):
self.name = name
self.id = id
#应用字典
self.grades = {"语文": 0, "数学": 0, "英语": 0}
def set_grades(self, course, grade):
if course in self.grades:
self.grades[course] = grade
def print_grades(self):
print(f"学生{self.name},学号为:{self.id},的成绩为:")
for course in self.grades:
print(f"{course}:{self.grades[course]}分")
chen = Student("小陈", "1001")
print(chen.name)
print(chen.grades)
chen.set_grades("数学", 95)
print(chen.grades)
chen.print_grades()