类的概念、属性与方法

通过class关键字创建类

类有一个特殊的方法叫做构造函数,主要作用是定义实例对象的属性。它必须要被命名为__init__,括号里面可以放任意数量参数,但是第一个永远是被占用的,得用于表示对象自身,约定俗成叫self,它能帮你把属性的值绑定在实例对象上。self.name="张三"说明对象的属性是张三,如果写成name = "张三",前面没有self的话,Python只是在给普通的name变量赋值。

class Ren:
    def __init__(self):
    self.name = "张三"

实例化对象,创建对象使用类名括号里面放入参数。这样__init__方法就会被调用,并返回一个对象。self参数不需要传入。

ren1 = Ren()
print("ren1.name")

并不是所有对象属性的名字都叫张三,所以应该给__init__更加灵活的属性赋值。在创建对象时需要再括号里面传入一个名字

class Ren:
    def __init__(self,ren_name):
    self.name = ren_name
#创建对象时传入参数
ren1 = Ren("张三")
#创建实例后的参数就会是我传入的参数
Print(ren1.name)

还可以给对象添加更多属性

class Ren:
    def __init__(self,ren_name,ren_age,ren_color):
    self.name = ren_name
    self.age = ren_age
    self.color = ren_color
#创建对象时传入参数
ren1 = Ren("张三",18,"黑")

Print(f"名字叫{ren1.name}的人,年龄是{ren1.age}岁,是{ren1.age}种人")

类中的方法定义很简单,和我们创建普通的函数差不多,只有两个区别。第一是要写在class里面,前面要有缩进,表示属于该class的方法。第二是和__init__一样,第一个参数被self占用表示对象自身。

方法需要这个self的作用:一个是在方法里面去获取或修改和对象绑定的属性。比如print("喵" * self.age)

class Ren:
    def __init__(self,ren_name,ren_age,ren_color):
        self.name = ren_name
        self.age = ren_age
        self.color = ren_color
    def speak(self,content):
        print(f"小猫{self.name}在思考{content}")
        print("喵" * self.age)

ren1 = Ren("张三",18,"黑")
ren1.speak("从容解决问题")

实践定义一个学生类

要求:

1.属性包括学生姓名、学号,以及语数英三科的成绩

2.能够设置学生某科目的成绩

3.能够打印出该学生的所有科目成绩

class Stundent:
    def __init__(self, name, student_id):   #默认属性,可以传入nane、student_id参数
        self.name = name
        self.student_id = student_id
        self.grades = {"语文": 0, "数学": 0, "英语": 0}
    def set_grade(self,course,grade):   #方法可以传入course、grade两个参数
        if course in self.grades:   #如果传进来的course的值属于self.grades字典里面的键
            self.grades[course] = grade #把值赋予字典对应键的值
    def print_grades(self):
        print(f"学生{self.name}(学号:{self.student_id})的成绩为:")
        for course in self.grades:  #针对self.grades字典,循环每一个course这个键
            print(f"{course}: {self.grades[course]}分")  #遍历科目及其对应分数

chen = Stundent("小陈","10011")   #把2个参数传入Stundent类,实例化一个对象chen
chen.set_grade("语文",58) #chen对象使用set_grade方法设置科目成绩
chen.set_grade("数学",88) #chen对象使用set_grade方法设置科目成绩
chen.print_grades() #chen对象使用print_grades方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值