Python面向对象编程思想的深入学习

魔术方法的使用

在这里插入图片描述

案例体验

class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # __str__魔术方法, 如果不去写这个方法,那么print输出的则是信息存储的内存地址。
    def __str__(self):
        return f'Student类对象,name:{self.name}, age:{self.age}'

    # __lt__魔术方法, 可以给类对象添加比较大小的功能(只能用到> or <)。
    def __lt__(self, other):
        return self.age < other.age

    # __le__魔术方法,支持(>= or <=)的比较方法。
    def __le__(self, other):
        return self.age <= other.age

    # __eq__魔术方法,完成相等的比较。
    def __eg__(self, other):
        return self.age == other.age

stu = Student('周杰轮', 31)
stu1 = Student('李连杰', 21)
print(stu)
print(str(stu))
print(stu1 > stu)
print(stu >= stu1)

面相对象编程

私有成员和方法的定义使用

私有成员的实际意义:在类中提供仅供内部使用的属性和方法 ,而不对外开放(类对象无法使用)

定义的语法:在定义变量和函数的基础上,在函数名或变量名前添加2个下划线“__”

案例体验

"""
  演示面相对象封装思想中私有成员的使用
"""

# 定义一个类, 内部含有私有成员变量和私有成员方法
# 私有成员的实际意义:在类中提供仅供内部使用的属性和方法,而不对外开放(类对象无法使用)
class Phone:

    __current_voltage = 1 # 当前手机运行电压,私有成员变量和方法可以被类中其他成员调用。

    def __keep_single_core__(self):
        print("让CPU以单核模式运行")

    def call_by_5G(self):
        if self.__current_voltage >= 1:
            print("5G通话已经开启")

        else:
            self.__keep_single_core__()
            print("电量不足,无法使用5G通话,并已经设置为单核运行进行省电。")


phone = Phone()
phone.call_by_5G()

继承

单继承

在这里插入图片描述

概念:一个子类继承了一个父类

案例体验

"""
  演示类中继承的方法使用
"""
# 单继承
class Phone:
    IMEI = None # 序列号
    producer = "HM" # 厂商

    def call_by_4G(self):
        print("4G通话")

class Phone2024(Phone):
    face_id = "131153" # 面部识别ID

    def call_by_5G(self):
        print("2024新增加的功能,5g通话")

phone = Phone2024()
print(phone.producer)
phone.call_by_4G()
phone.call_by_5G()

多继承

概念:一个子类继承多个父类

多继承中,如果父类有相同名方法或属性,先继承优先级高于后继承

在这里插入图片描述

pass 关键字的作用是什么?

pass 是站位语句,用来保证函数(方法)或类定义的完整性,表示无内容,空的意思

复写

在这里插入图片描述

在这里插入图片描述

案例体验

class Phone:
    IMEI = None # 序列号
    producer = "HMMMM" # 厂商

    def call_by_4G(self):
        print("4G通话")

# 定义子类,复写父类成员
class MyPhone(Phone):
    producer = "ITHEIMA"

    def call_by_5G(self):
        print("开启GPU单核模式,确保通话时候省电")
        # 方式1,父类名成员变量.
        print(f"父类的厂商是:{Phone.producer}")
        Phone.call_by_4G(self)
        # 方法2,super().成员变量
        print(f"父类的厂商是:{super().producer}")
        super().call_by_4G()
        print("关闭GPU单核模式,确保性能")

phone = MyPhone()
phone.call_by_5G()
print(phone.producer)

类型注解

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

多态

1)什么是多态?

多态是指,同一行为,使用不同的对象获得不同的状态。

如,定义函数(方法),通过类型注解声明需要父类对象,实际传人子类对象进行工作,从而获得不同的工作状态

2)什么是抽象类(接口)

包含抽象方法的类,称之为抽象类。抽象方法指的是:没有具体实现的方法(pass)

称之为抽象方法

3)抽象类的作用

多用于顶层设计(设计标准),以便子类做具体实现。

也是对子类的一种软约束,要求子类必须复写(实现)父类的一些方法

并配合多态使用,获得不同的工作状态。

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值