文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python学习 :面向对象 -- 三大

2023-01-30 23:38

关注

面向对象的三大特性

一、封装

把数据、值、变量放入到对象中

构造方法 _init_方法

特殊作用: 在 obj = 类名() 执行时: 内部自动执行两个步骤:

1、创建对象

2、通过对象执行类中的一个特殊方法(_init_方法)

class info:
    def __init__(self,name,age):
        self.name = name
        self.age = age
        self.gender = '男'
    def show(self):
        print(self.name,self.age,self.gender)

alex = info('alex',20)
alex.show()
mike = info('mike',23)
mike.show()
===>alex 20 男
===>mike 23 男

二、继承

1、继承

   -- 子类继承父类,或称派生类继承基类

class GrandFather:
    def plus(self):
        print("添加")

class Father(GrandFather):     # 父类(基类)
    def add(self):
        print("增加")
    def delete(self):
        print("删除")

class Son(Father):  # 子类(派生类)
    def get(self):
        pass

s = Son()
s.add()
s.plus()
===>增加
===>添加

2、重写

      -- 防止执行父类中的某些方法

class Father:     # 父类(基类)
    def add(self):
        print("父类中的增加")
    def delete(self):
        print("父类中的删除")

class Son(Father):  # 子类(派生类)
    def delete(self):
        print("子类中的删除")  # 默认不再执行父类中的方法

s = Son()
s.add()
s.delete()  # 此时子类不再继承父类中的delete方法,而是调用子类自己的方法
===>父类中的增加
===>子类中的删除

3、扩展

      -- 即执行父类中的方法,也执行子类自己的方法

class RequestHandler:
    def get(self):
        print("父类中的获取")
class BaseRequest(RequestHandler):
    def get(self):
        super(BaseRequest, self).get()  # 执行父类中的方法
        #RequestHandler.get(self) 与super方法效果一样,但更推荐使用euper方法
        print("子类中的获取")

obj = BaseRequest()
obj.get() # 此时方法会执行父类中的方法,再执行子类的方法
===>父类中的获取
===>子类中的获取

4、多继承

      -- 子类会根据左侧优先原则,在第一个父类中寻找方法,在找不到的情况下在去父类的父类中寻找

      -- 当父类有同一个根时,根会在最后才执行

class Base:
    def a(self):
        print('Base')

class F0(Base):
    def a1(self):
        print('F0')

class F1(F0):
    def a1(self):
        print('F1')

class F2(Base):
    def a(self):
        print('F2')

class S(F1,F2):
    pass

obj = S()
obj.a()
===> F2

三、多态

  python 原生即为多态,不需要过多进行处理

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯