python面向对象 - 19 认识类、定义类、属性与方法的使用

认识类、定义类、属性与方法的使用

1.什么是类

a . 类就是拥有相同方法和相同属性的对象的集合。对象就是类的实例。

b . 类是抽象的,类是具体的。

2.定义一个类

class 类名():
    属性
    方法

class: 定义类的关键字

类名: 标识符: 类名的首字母大写,见名知义

( ): 固定格式,里面放被继承的类

属性: 属性+字段(类属性和对象属性)

方法: 所谓方法就是定义在类中的函数

例如: 创建一个人类
#(1)创建类
class Person():
    """
    -----方法
    类中对象方法都有一个默认的参数self,用来接收调用方法的对象本身。调用的时候不用我们来给他传参,系统会自动给他传参
    对象方法:需要使用对象来调用
    """
    def run(self):
        print(2,self)
        print('长跑五千米')

    def eat(self):
        print('刚吃了小龙虾')

# (2)声明对象(使用类)
han_bo = Person()  #创建了一个Person对象xiao_ming.创建完后,xiao_ming对象就拥有了Person中所有的对象属性和对象方法
print(1,han_bo)   #打印这个对象的内存地址
han_bo.run()   #>>>长跑五千米  #self参数对应的值,系统会自动传递。谁调用当前的这个方法,self就指向谁
               #在这儿,run方法中的self参数就是xiao_ming
han_bo.eat()  #>>>刚吃了小龙虾

# 一个类可以有多个对象
wang_yan = Person()  #xiao_hua也是Person的对象
print(1,wang_yan)
wang_yan.run()    #run里面的self就是xiao_hua
wang_yan.eat()

3.属性和init方法(类的说明)

# (1) __init__方法是在创建对象的时候会被自动调用的方法,作用是用来初始化对象.
# (2) 如果没有定义这个方法,系统会自动定义一个只有self参数的__init__方法.

class Person():
    def __init__(self,name1,age1,face1):
        # 声明类的对象字段,字段就是用来保存对象的属性
        # 这儿name,age和face就是类的对象字段
        self.name = name1
        self.age = age1
        self.face = face1

# (3) 通过类创建对象的时候,系统会自动调用类的__init__方法,并且将()中的参数,作为__init__方法的参数
# 注意:在创建对象的时候。类名后()中的参数要和__init__方法中除了self以外的其他的参数一一匹配
# 如果没有手动的去定义__init__方法,系统会调用一个除了self以外没有其他参数的一个__init__方法

han_bo = Person('han_bo1',23,80)   #创建han_bo这个对象

# (4) 使用对象的属性:对象名.属性
print(han_bo.name)   #>>>han_bo1
han_bo.name = 'BoBo'   #更改属性
print(han_bo.name)   #>>>BoBo
练习1:定义一个车类型,让他拥有对象属性:颜色、耗油、品牌。对象方法有:行驶
def main():  #为了书写规范,养成良好的习惯,通常把代码写在main函数里面,保护起来,外界不能直接调用.

    class Car():

        # 注意:如果类有对象属性,对应的__init__方法不一定非要有参数给属性赋值
        def __init__(self,color,brand):
            # self.color = 'yellow'  可以直接赋默认值
            self.color = color
            self.you_hao = '12l/km'   #给属性一个默认值
            # self.brand = 'XFL'
            self.brand = brand

        def run(self):
            print('%s大黄蜂以200km/h的速度在高速上狂飙' % self.brand)

    # 申明对象--->雪佛兰大黄蜂
    bumblebee = Car('Yellow','XFL')
    print(bumblebee.color)  #>>>Yellow
    print('大黄蜂油耗',bumblebee.you_hao)   #>>>大黄蜂油耗 12l/km
    #对象调用run这个方法:对象名.方法名
    bumblebee.run()       #>>>XFL大黄蜂以200km/h的速度在高速上狂飙

if __name__ == '__main__': 
    main()
练习2.创建人这个类.
def main():

    class Person():
        # '人类共有的属性'
        def __init__(self,name,age):
            self.name = name
            self.age = age
        #'人类共有的行为方法'
        def run(self):
            # 在类的对象方法中使用对象的属性,直接通过self.属性名来使用
            print('%s跑起来乌龟都追不上他' % self.name)
    # 创建第一个人
    person_1 = Person('XiaoMing',18)
    print(person_1.name,person_1.age)  #>>>XiaoMing 18
    person_1.run()   #>>>XiaoMing跑起来乌龟都追不上他

    # 创建第二个人
    person_2 = Person('HuaHua',20)
    print(person_2.name,person_2.age)  #>>>HuaHua 20
    person_2.run()    #>>>HuaHua跑起来乌龟都追不上他

if __name__ == '__main__': 
    main()
练习3.创建一个学生类
属性:1.名字,2.年龄 3.语文成绩
功能:1.修改学生成绩  2.展示学生成绩
创建学生类的对象,并且在创建的时候给名字和年龄赋初值。
通过方法去修改学生成绩和展示学生成绩

def main():

    class Student():
        def __init__(self,name,age):
            self.name = name
            self.age = age
            self.score = 0    #给语文成绩赋一个默认值

        def change_score(self,new_score):    #修改学生成绩
            self.score = new_score

        def show(self):   #展示学生成绩
            print('%s的语文成绩是:%d' % (self.name,self.score))

    stu1 = Student('WangYan',16)
    print(stu1.name, stu1.age)   #>>>WangYan 16
    stu1.change_score(99)   #修改默认值0为99
    stu1.show()     #>>>WangYan的语文成绩是:99

if __name__ == '__main__': 
    main()
练习4. 创建一个学生类
def main():

    class Student():
        def __init__(self, name, age):
            self.name = name
            self.age = age
            self.grades = [66, 56, 71, 77, 80, 59]  #所有学科的成绩用一个容器列表来装,将低于60分的进行更改

        def change_grades(self,new_grades):  #修改学生成绩
            self.grades = new_grades

        def pre_grade(self):  #获取学生的平均成绩
            total = sum(self.grades)
            return total / len(self.grades)

        def show_grade(self):  #展示学生成绩
            print('为了不让他挂科%s同学修改后的所有学科成绩:%s' % (self.name,self.grades))

    stu1 = Student('XiaoMing',20)
    stu1.change_grades([66, 60, 71, 77, 80, 61])  #调用change_grades这个方法进行成绩更改
    print(stu1.pre_grade())   #>>>69.166
    stu1.show_grade()   #>>>为了不让他挂科XiaoMing同学修改后的所有学科成绩:[66, 60, 71, 77, 80, 61]

if __name__ == '__main__': 
    main()

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值