广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python面向对象——继承
  • 854
分享到

Python面向对象——继承

面向对象Python 2023-01-31 01:01:41 854人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

#coding:utf-8 """ 术语: 1、在python3中,自定义创建的类都默认继承了python类中名为object的类 2、object类提供的方法,是双下划线开头的,是为了提供给Python内部使用 3、被继承的类叫做超类,

#coding:utf-8

"""
术语:
1、在python3中,自定义创建的类都默认继承了python类中名为object的类
2、object类提供的方法,是双下划线开头的,是为了提供给Python内部使用
3、被继承的类叫做超类,或者叫做父类
4、从超类(父类)继承过来的类叫做子类
5、子类来源于父类,又或者说,子类扩展了父类的功能
"""
"""
#扩展类:给一个已经存在的类添加新的行为(方法)
class Util: #我定义的这个类(意图是工具类),没有明确继承谁,所以它默认继承object类
    #定义扫描ip范围的方法
    def scan_ip_range(self, ip_range):
        print("start scan ip range: ", ip_range)
class ChildUtil(Util): #这个类继承了Util类
    #添加一个扫描端口的功能
    def scan_port(self, port):
        print("start scan port: ", port)

if __name__ == '__main__':
    s = ChildUtil() #实例化子类后,创建出了对象s
    s.scan_ip_range("10.36.1.0/24") #扫描IP范围的方法是从父类继承过来的
    s.scan_port(80) #扫描端口的方法是在子类中扩展的
"""

"""
#重写普通方法
# 1、重写就是,比如父类里有a方法,但是对a方法不满意,需要重写
# 2、解决办法就是,在子类中写一个和父类中a方法名字一样的方法,名字也叫a
# 3、因此,这样就等价于重写了

class Supper():
    def a(self):
        print("hello a")
class Child(Supper):
    def a(self):
        print("Hi! a...")
if __name__ == '__main__':
    o = Child()
    o.a() #此刻的调用是子类中的a方法

    #如果把子类中的a方法去掉,那么调用则是父类中的a方法
    # 测试结论:
    # 1、子类中的a方法只是覆盖了父类中的a方法,所以父类中的a方法还是存在的
    # 2、如果子类没有a方法,则会到父类中去找,父类没有的话会到object类中找,还是没有则引发异常
    # 3、因此,可以看出这个查找顺序是就近原则
"""

#重写__init__(),普通方法可以重写,初始化也是可以从写的
"""
例如:
有一个类用来描述物理机对象,并且对象有主机名、IP地址、操作系统这3个基本属性
还有一个类用来描述vmware的虚拟机对象,也有和物理机一样的3个属性,但是虚拟机还有一个vmtools属性
那么,在定义虚拟机类的时候,难道要再重新定义一遍主机名、IP地址、操作系统这三个属性?
那么虚拟机类既然还有一个vmtools属性,那么肯定就有初始化方法,但是描述物理机对象的类也有初始化方法
这特么就引发问题了,解决代码如下
"""
"""
class Host:
    def __init__(self, hostname, ip, os):
        self.hostname = hostname
        self.ip = ip
        self.os = os

    def get_info(self):
        print(self.hostname, self.ip, self.os)

class Vm(Host):
    def __init__(self, hostname, ip, os, vmtools):
        super().__init__(hostname, ip, os) #super的功能就是调用父类的代码
        self.vmtools = vmtools

    #重写了父类的get_info方法
    def get_info(self):
        super().get_info() #super的功能就是调用父类的代码
        print(self.vmtools, )

if __name__ == '__main__':

    v = Vm("vm1","10.2.3.4","Centos6.5", "vmtools_v1")
    v.get_info()
"""

#多重继承
"""
就是有父类A,父类B,一个子类C,但是类C什么都没有
类C同时继承了父类A和B,这时候,C就拥有了父类A和B的属性和方法,都被继承过来了
"""
class A:
    def get_a(self):
        print("my a...")
class B:
    def get_b(self):
        print("my b...")

class C(A, B): #继承A和B
    pass

if __name__ == '__main__':

    c = C()
    c.get_a()
    c.get_b()

    #应用场景一目了然,不用多说什么
     #在查找顺序,首先是在C类找,那么,然后是在A找还是在B找?这涉及到一个查找方式的问题
     #多重继承,有两种搜索方式,分别是深度优先和广度优先,具体的自行Google


--结束END--

本文标题: Python面向对象——继承

本文链接: https://www.lsjlt.com/news/183665.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python面向对象——继承
    #coding:utf-8 """ 术语: 1、在python3中,自定义创建的类都默认继承了python类中名为object的类 2、object类提供的方法,是双下划线开头的,是为了提供给python内部使用 3、被继承的类叫做超类,...
    99+
    2023-01-31
    面向对象 Python
  • python 面向对象之继承
    文章目录 前言继承的概念单继承多继承子类重写父类的同名方法和属性子类调用父类同名的方法和属性多层继承私有权限 前言 前面我们已经学习了 python 面向对象的类和对象,那么今天我将为大...
    99+
    2023-09-01
    python 开发语言
  • python 面向对象之类的继承
    python中什么是继承:新类不必从头编写新类从现有的类继承,就自动拥有了现有类的所有功能新类只需要编写现有类缺少的新功能继承的好处:复用已有代码自动拥有了现有类的所有功能只需要编写缺少的新功能继承的特点:子类和父类是is关系python继...
    99+
    2023-01-30
    面向对象 python
  • python 面向对象之继承顺序
    先来看一个经典类class A:     def __init__(self):         p...
    99+
    2023-01-30
    面向对象 顺序 python
  • 详析Python面向对象中的继承
    目录一单继承1.继承的基本语法格式如下2.查看类继承情况3.继承中的属性和方法4.初始化函数__init__()和super二多层继承三多重继承一 单继承 类继承作为python的三...
    99+
    2022-11-13
  • python面向对象之类的继承详解
    目录一、概述 二、类的继承2.1 继承的定义2.2 构造函数的继承 2.3 子类对父类方法的重写三、类继承的事例一、概述  面向对象编程 (OOP) 语言的一个主要功能就是“继承”。...
    99+
    2022-11-12
  • Python面向对象编程之类的继承
    目录1、对继承的理解2、类继承的构建3、Python中最基础的类4、ython类的重载4.1 属性重载4.2 方法重载5、类的多继承1、对继承的理解 继承(Inheritance) ...
    99+
    2022-11-12
  • python 面向对象之继承实例讲解
    面向对象编程语言具有封装、继承、多态三个基本特征,本文就继承举例详谈比如说学校主要有3大角色:学校,讲师,学员学校可以注册学员,统计有多少学员老师负责讲课学生听课,提问,学习,交学费先定义4个类:class School(obje...
    99+
    2023-01-30
    面向对象 实例 python
  • 【Java基础篇 | 面向对象】—— 继承
    个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【JavaSE_primary】 本专栏旨在分享学习Java...
    99+
    2023-10-11
    java 开发语言 面向对象
  • 面向对象封装、继承、多态
    一、面向对象封装   01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 —— 将 属性 和 方法 封装 到一个抽象的 类 中 外界 使用 类 创建 对象,然后 让对象调用方法 对象方法的细节 都被 封装...
    99+
    2023-01-31
    面向对象 多态
  • Java全面分析面向对象之继承
    目录继承什么是继承呢?子类访问父类的成员变量子类访问父类非同名成员变量子类访问父类同名成员变量子类访问父类的成员方法子类访问父类的非同名方法子类访问父类的同名方法super关键字su...
    99+
    2022-11-13
  • JavaScript面向对象中继承的概念
    本篇内容介绍了“JavaScript面向对象中继承的概念”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、...
    99+
    2022-10-19
  • python3:面向对象(多态和继承、方
    1、多态 同一个方法在不同的类中最终呈现出不同的效果,即为多态。 class Triangle: def __init__(self,width,height): self.width = width ...
    99+
    2023-01-31
    面向对象 多态
  • 详解Java面向对象中的继承
    继承的概念 继承是面向对象编程中的一个概念,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。子类在继承父类的同时也可以添加自己的属性和方法,从而实现代码的...
    99+
    2023-05-19
    Java 面向对象 Java 继承
  • JAVA面向对象中如何继承super
    小编今天带大家了解JAVA面向对象中如何继承super,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“JAVA面向对象中如何继承sup...
    99+
    2023-06-28
  • java面向对象继承与多态介绍
    目录一.概述  二.继承2.1 继承的概述2.2 继承机制2.3 类中属性,方法的继承与覆盖2.4 super 关键字三. 多态总结一.概述 ...
    99+
    2022-11-12
  • 面向对象多继承和网络编程
      1.先找左再找右 class A(object): pass class B(object): def f1(self): print('B') class C(A,B): pass...
    99+
    2023-01-30
    面向对象 网络编程
  • Java面向对象之类的继承介绍
    目录继承的作用如果没有继承机制是怎么样的?使用继承机制后的示例?类的继承是什么?子类和父类的继承机制Java单继承Java继承的顶级父类:Object对象的类型转换对象向上转型对象向...
    99+
    2022-11-13
  • 【JavaSE】面向对象编程思想之继承
     【本节目标】 继承 组合 目录 1. 为什么需要继承 2. 继承概念 3. 继承的语法 4. 父类成员访问 4.1 子类中访问父类的成员变量 4.2 子类中访问父类的成员方法 5. super关键字 6. 子类构造方法 7....
    99+
    2023-09-03
    java 开发语言 学习方法
  • Python基础面向对象之继承与派生详解
    目录一、面向对象三大特征之继承1、继承的概念2、继承的本质3、继承的实操4、继承后名字查找的顺序5、经典类与新式类二、派生1、派生的概念2、派生的方法一、面向对象三大特征之继承 py...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作