魔术方法的使用
案例体验
class Student:def __init__(self, name, age):self.name = nameself.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.agestu = 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" # 面部识别IDdef 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)抽象类的作用
多用于顶层设计(设计标准),以便子类做具体实现。
也是对子类的一种软约束,要求子类必须复写(实现)父类的一些方法
并配合多态使用,获得不同的工作状态。