Python-对象的三大特性
更多优秀文章,请扫码关注个人微信公众号或搜索“程序猿小杨”添加。
面向对象编程,是许多编程语言都支持的一种编程思想。简单理解是:基于模板(类)去创建实体(对象),使用对象完成功能开发。面向对象的三大特征:1、封装; 2、继承; 3、多态。
一、封装

二、继承

语法:将父类的成员变量和成员方法拿来使用。
#单继承class 类名(父类名) :类内容体#多继承class 类名(父类名1,父类名2,父类名3,父类名4...父类N) :类内容体
多继承注意事项:
多个父类中,如果有同名的成员,那么默认以继承顺序(从左到右)为优先级。即:先继承的保留,后继承的被覆盖。
相关代码:
#定义一个手机类from classPack.Nfc import Nfcfrom classPack.Photo import Photo#继承 Photo,Nfc 多继承class Phone(Photo,Nfc):#定义成员变量name=None #名称price=None #价格# 定义成员方法def p_info(self):print(f"我是:{self.name},我的价格是:{self.price}")#定义一个NFC功能class Nfc:type=Noneis_open=Nonedef nfc_say(self):print(f"我是NFC,我的类型是:{self.type},我的状态是:{self.is_open}")#照相类class Photo:is_open=None #是否打开f_type=None #功能def photo_say(self):print(f"大家好,我是照相机,我的状态是:{self.is_open},我的功能是:{self.f_type}")
2.2、复写


参考案例:
#定义一个手机类from classPack.Nfc import Nfcfrom classPack.Photo import Photo#继承 Photo,Nfc 多继承class Phone(Photo,Nfc):#定义成员变量name=None #名称price=None #价格# 定义成员方法def p_info(self):print(f"我是:{self.name},我的价格是:{self.price}")#调用Phono中的成员变量或成员方法Phone.photo_say(self)super().nfc_say()
注意:只可以在子类内部调用父类的同名成员,子类的实体类对象调用默认是调用子类复写的。
2.3、类型注解

语法:一般无法看出类型的时候加上类型注释。(注意:仅仅是个备注,不影响程序运行使用)
1、变量:类型2、注释 #type:类型3、union联合注解
代码:
import random##注解#1、为变量设置类型注解var_01:int =Nonevar_02:str=Nonevar_03:float=None#2、类对象类型注解class Student:pass #代表什么都不做处理student:Student=Student()#3、基础容器注解list_01:list=[]tuple_01:tuple=()str_01:str=""dict_01:dict={}##详细注释list_01:list[int]=[1,2,3]dict_02:dict[str,int]={"key01":12,"key02":23}#4、除了使用 变量:类型 还可以使用注释 #type:类型var_03=random.randint(1,100) #type:int
函数(方法)注解:
语法:返回值类型注解->
def 函数方法名(形参:类型,...形参:类型)->返回值类型:pass
参考案例:
#5、对形参进行注解def fun_01(x:int,y:int):return x+yprint(fun_01(2,3))#6、对函数返回值进行注解def fun_02(data:list)->list:return datalist_01=[1,2,3]print(fun_02(list_01))
Union联合注解:变量、函数(方法)、形参和返回值都可以

参考案例:
# 7、使用union进行联合注解dict_03:dict[str,Union[str,int]]
三、多态
什么是多态?
多态指的是,同一个行为,使用不同的对象获得不同的状态。
如,定义函数(方法),通过类型注解声明需要父类对象,实际传入子类对象进行工作,从而获得不同的工作状态。
什么是抽象类(接口)
包含抽象方法的类,称之为抽象类。抽象方法是指:没有具体实现的方法(psss)称之为抽象方法。
抽象类的作用
多用于做顶层设计(设计标准),以便子类做具体实现。
也是对子类的一种软性约束,要求子类必须复写(实现)父类的一些方法
并多态获得不同的工作状态。
总结:1、抽象的父类设计(设计标准); 2、具体的子类实现(实现标准)。


参考案例:
###多态#定义一个空调抽象类class Ac:#制热功能def make_hot(self):pass#制冷功能def make_cool(self):pass#出风功能def make_wind(self):pass#定义一个子类 美的class Meidi_ac(Ac):#复写父类的相关方法# 制热功能def make_hot(self):print("我是美的空调的制热功能")# 制冷功能def make_cool(self):print("我是美的空调的制冷功能")# 出风功能def make_wind(self):print("我是美的空调的制风功能")#定义一个子类 格力class Gree_ac(Ac):#复写父类的相关方法# 制热功能def make_hot(self):print("我是格力空调的制热功能")# 制冷功能def make_cool(self):print("我是格力空调的制冷功能")# 出风功能def make_wind(self):print("我是格力空调的制风功能")#定义在一个类中使用class UseClass():def use_cool(ac:Ac):ac.make_cool()#在类中使用 同一行为,不同状态meidi_ac=Meidi_ac()gree_ac=Gree_ac()UseClass.use_cool(meidi_ac)UseClass.use_cool(gree_ac)
更多优秀文章,请扫码关注个人微信公众号或搜索“程序猿小杨”添加。

![[Nacos] Nacos Server主要类和接口 (五)](https://img-blog.csdnimg.cn/c3a8dbdedb7e481b8e744b997a94fb2b.png)

















