ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Python基础之面向对象:3、继承与派生

2022-11-05 14:14:31  阅读:342  来源: 互联网

标签:python 数据 语言 NumPy ipython shell 科学家


面向对象

一、三大特征之继承

  • python三大特征:

    • 封装、继承、多态
  • 三者中继承最为核心,实际应用多,感受较为直观

  • 封装和多态略微抽象

1、继承的概念

继承的含义:

​ 在现实生活中,继承表示人与人之间资源的从属关系

​ 例如:儿子继承父亲

​ 在编程的世界中,继承表示类与类之间的资源从属关系

​ 例如:类a继承类b

继承的目的:

​ 在现实生活中,儿子继承了附件就拥有了父亲所有资源的支配权限

​ 在编程世界中,类A继承了类B就拥有了类B中所有的数据和方法使用权限

2、继承的本质

​ 继承本质应该分为两部分:

​ 当多个类中含有相同部分时,我们就把相同的部分抽离出去,将相同的部分新成一个新的类,在用刚才被抽离出去相同部分的类,去继承新的那部分,这样的好处就是,当多个类需要一个相同用的功能时,可以节省代码,不用反复编写

​ 抽象:将多个类相同的东西抽出去,形成一个新的类

​ 继承:将多个类继承刚刚抽取出来的新的类

对象>>>:数据与功能的结合体

类(子类)>>>:多个对象相同功能和数据的结合体

父类>>>:多个子类相同功能和数据的结合体


本质:类、父类的本质都是为了节省代码,减少重复编写相同代码的时间,使用时更为方便

3、继承的实操

  • 在定义类的时候,类名后方可加括号,早括号内填入其他它类的名字,就意味着继承了其它类

  • python支持多类继承,括号内可填写多个类名,只需用逗号隔开即可

# 1、定义两个类,其中一个假设为父类,另一个假设为子类
class Father: 
    money = 99999999
    house = '老北京四合院'  # 父类中数据强大

class Son:
    pass  # 子类中空空如也


# 2、父类中的数据,子类无权直接使用,当我们在子类中继承父类后,子类和子类产生的对象都可以通过'点'的方式使用父类中的数据
class Father:
    money = 99999999
    house = '老北京四合院'


class Son(Father):
    pass

# 子类直接使用父类中的数据
print(Son.money)
# 子类产生的对象使用父类中的数据
obj1 = Son()
print(obj1.money)
------------------------------------------------------------------------------------
99999999
99999999

4、继承后名字查找的顺序

未继承:

​ 对象(object)自身名称空间>>>类的名称空间

单线继承:

​ 对象(object)自身名称空间>>>子类的名称空间>>>父类的名称空间

多线继承:

​ 1、菱形继承: (广度优先,最后才会找闭环的定点)

​ 对象自身名称空间>>>子类名称空间>>>父类名称空间(形参内由左至右)>>>闭环

​ 2、非菱形继承: (深度优先)

​ 对象自身名称空间>>>子类名称空间>>>父类名称空间(形参内由左至右)

标签:python,数据,语言,NumPy,ipython,shell,科学家
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有