Python-对象的三大特性

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=None    is_open=None    def 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+y print(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)

更多优秀文章,请扫码关注个人微信公众号或搜索“程序猿小杨”添加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值