DAY05

56 篇文章 0 订阅
22 篇文章 0 订阅

第八讲

面向对象基础

一类人或一类车等的定义方法用列表太过复杂,所以抽象出类这一概念

面向过程编程(把大象放进冰箱需要几步)

  • 把冰箱门打开
  • 把大象装进去
  • 把冰箱门关上

面向对象编程(大象,冰箱的种类,具象化目标具象化实现)

类的定义

# class 类名:
#     属性
#     方法

要求

  1. 类的首字母必须大写

  2. 类名后面必须有冒号

  3. 类体有缩进

class Phone:
    pass
# 在python中 pass是空语句,是为了保持程序结构的完整性。pass不做任何事情,一般用于占位有语句,支撑结构
class Phone:
    brand = '华为'
    color = '黑色'
    type = 'Mate30 pro'
    price = 9999
# 定义行为和函数相似,只是必须带上一个参数self
    def call(self):
        print('打电话')
    def send_message(self):
        print('可以发信息')
class Saiya:
    name = '悟空'
    hair = '固定'
    has_tail = True
    appetite = '大'
    def fight(self):
        print('我们赛亚人就是喜欢战争')

类的使用

类的定义主要用途是把一个类的所有特征抽象出来,而用到具体对象时则需要讲抽象的特征一一赋值一一对应

# 对象名 = 类名(参数),其中参数是可选参数,可有可无
phone1 = Phone()
phone2 = Phone()
phone3 = Phone()
print(phone1)
print(phone2)
print(phone3)
# 访问方式  对象名.属性名  or   对象名.方法名
print(phone1.price)

属性添加的方式

  1. 通过外层的对象动态添加
  2. 使用构造函数添加
# 通过外层的对象动态添加
phone1.price = 10000
print(phone1.price)
# __init__魔术构造方法也就是构造函数,会在开始时自动调用
class Person:
    country = '中国'
    def __init__(self,name):
# self表示对象本身,self.name = name表示在当前对象中增加一个属性并且赋值(在这里也就是Person)
        print('我是一个__init__方法')
        self.name =name
    def eat(self):
        print('我是一个吃货')
p1 = Person(name = '龟龟')
p2 = Person(name = '兔兔')
print(p1)
print(p2)

类的方法的定义与调用

class Person:
    name = '悟空'
    def __init__(self,name):
        self.name =name
    def eat(self):
        print('我是一个吃货')
    def sprot(self, time):
        if time < 6:
            print(self.name + '你怎么这么勤快,这么早就起床了')
        else:
            print(self.name + '怎么这么爱睡懒觉!')
        self.eat()
p1 = Person(name = '龟龟')
p2 = Person(name = '兔兔')
p1.sprot(time=3)
p2.sprot(time=7)

类的继承

class Saiya:
    def __init__(self,name):
        self.name = name
    def eat(self):
        print(self.name + '我是一个吃货')

    def sprot(self, time):
        if time < 6:
            print(self.name + '你怎么这么勤快,这么早就起床了')
        else:
            print(self.name + '怎么这么爱睡懒觉!')
        self.eat()
# 假设有另外一类人的定义,和上面Person几乎一样,为了减少代码重复,引入继承
class Saiya(Person):
    #这样就可以表示Saiya类继承了所有Person属性和行为(可以任意调用Python),这样我们就有更多的代码空间进行Saiya不同于Person的特性,大大简化了代码
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宴师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值