当前位置: 首页 > wzjs >正文

个人备案后可以做电影网站吗苏州集团网站设计定制

个人备案后可以做电影网站吗,苏州集团网站设计定制,沈阳快速排名优化,环球影城有存放行李的吗一 继承 继承是指一个类(子类)可以继承另一个类(父类)的属性和方法,并可以在其基础上进行扩展或修改。 子类可以继承父类的属性和方法,包括私有属性和隐藏属性 💡 核心思想: 避免重复代码&…

一 继承

  • 继承是指一个类(子类)可以继承另一个类(父类)的属性和方法,并可以在其基础上进行扩展或修改。
  • 子类可以继承父类的属性和方法,包括私有属性和隐藏属性

💡 核心思想:

  • 避免重复代码,提高复用性。
  • 实现类之间的层次关系。

1.1 语法和分类

  • 分类: 单继承和多继承

class 类名(父类名):
    代码块

1.2 应用

  •    下面写了一个类并且实现了一个speak方法, 但是这个方法并没有实现具体的逻辑,

  •     而是抛出一个异常,要求任何继承自 Animal 的子类都必须重写这个方法以提供具体的行为,

  •     当然并不是非要抛出异常,一般来说就当成一个普通类来定义就行。

class Animal:def __init__(self, name):self.name = namedef _ask(self):print("todi")def speak(self):raise NotImplementedError("Subclass must implement abstract method")
  • 像这样,继承Animal类并重写这个方法
class Dog(Animal):def speak(self):return f"{self.name}"
class Cat(Animal):def speak(self):return f"{self.name} says Meow!"
  • 这样我们在调用dog类时,既可以使用父类中继承来的_ask方法,也可以使用重写的speak方法
  • 正如开始所讲的,子类可以继承父类的私有属性和方法_ask是一个私有方法
if __name__ == "__main__": # 表示下面的语法只有在当前文件被直接运行时才会执行dog  = Dog("汤姆")cat  = Cat("丧彪")print(dog.speak())print(cat.speak())print(cat._ask())

    二 多层继承

    • 指的是一个类继承自另一个类,而那个类又继承自另一个类,形成一种层次结构。例如 A 继承自 B,B 继承自 C。
    • 比如定义了一个动物类,然后在定义一个飞行类继承动物类,然后再定义一个狗类继承飞行类,
    • 这就相当于狗类继承了父类的飞行属性,也从飞行属性的父类中继承了动物属性。
    class Animal:def __init__(self, name):self._name = namedef speak(self):print(f"{self._name} makes a sound(制造噪音).")class Fly(Animal):def fly(self):print(f"{self._name} fly.(飞行)")class Dog(Fly):def speak(self):print(f"{self._name} 狗叫")
    • 这时候我们创建Dog类,他是继承自->Fly(飞行类)也就永远fly的能力
    • 而Fly类继承Animal动物类,他就具有speak的能力
    dog1 = Dog("哈士奇")
    dog1.speak()
    dog1.fly()
    • 如果这里Dog类,也就是孙子类没有重写这个speak方法或者使用pass什么都不做

    • 那么他就会执行从层级类上面继承而来的方法

    三 方法重写

    • 方法重写是继承中很常见的。
    • 对父类方法进行扩展: 继承父类的方法,子类也可以增加自己的功能

    • 当从父类中继承的方法不能满足子的需求时,可以再子类中重写父类的方法,也叫覆盖

    # 方式:
    # 1 父类名.方法名()
    # 2 super().方法名() --推荐使用  
    # 3 super(子类名,self).方法名
    # 4 也可以完全覆盖重写

    • 首先我们定义一个动物类,再定义一个飞行的子类继承动物类
    • 再子类中重新写父类的方法,并且调用了super.speak()表示继承父类方法,然后还可以实现自己额外的功能。
    • 也可以直接全部重写不调用父类的方法。
    class Animal:def __init__(self, name):self._name = namedef speak(self):print(f"{self._name} makes a sound(制造噪音).")class Fly(Animal):def speak(self):super().speak()print(f"{self._name} makes a sound(制造飞行噪音).")
    bird = Fly("布谷鸟")
    bird.speak()

    四 新式类

    • 首先了解一个概念,派生类-> 有继承别的类并且修改了功能的类
    • 这个概念并不重要
    • 派生 = 继承 + 扩展/修改

     子类有不同与父类的属性或者方法,如果子类只是继承但没有做任何东西,则不是派生类

    经典类:

    • 这种方式就是没有继承任何类就是属于经典类

    # class A: #经典类: 不由任意内置类型派生出的类
    #     pass

    新式类:

    • python3中如果一个类没有继承任何类,则默认继承object类

    • object类是python为所有对象提供的基类,提供了一些内置的属性和方法

    • 类似与QT中的QObject

    class A(object):pass
    • 我们可以使用dir()内置函数查看某个类的属性和方法
    print(dir(object))

    五 多继承

    • 指的是一个类同时继承自多个父类。例如 D 继承自 A 和 B
    • 供了一种强大的机制,允许子类从多个父类继承功能,但需要小心处理方法冲突和构造函数的初始化。
    class Animal:def __init__(self, name):self._name = namedef speak(self):print(f"{self._name} makes a sound(制造噪音).")class Fly(Animal):def fly(self):print(f"{self._name} fly.(飞行)")def speak(self):print(f"{self._name} makes a sound(制造飞行噪音).")class Work(Animal):def work(self):print(f"{self._name} work.(散步)")def speak(self):print(f"{self._name} makes a sound(散步聊天).")class Dog(Fly,Work):pass
    dog1 = Dog("哈士奇")
    dog1.speak()
    • Fly和work类中有speak这个类,但是这种有重复的属性和方法时,会优先继承靠前面类的

    • 为什么有这种情况存在

    • 方法的搜索顺序会按照mro输出的结果从左往右查找

    • python中内置的属性__mro__可以查看方法调用顺序

    print(Dog.__mro__)
    • 这时候我们会发现最左边是Dog类,也就是说如果能够在这个类中找到我们所调用的方法,那就不会再去继承的父类上去查找要调用的方法了。


      文章转载自:

      http://aPXrz2dm.Lgtzd.cn
      http://DDdYOf2T.Lgtzd.cn
      http://AYtKiOnJ.Lgtzd.cn
      http://EO7Sk0dR.Lgtzd.cn
      http://pM01XiC9.Lgtzd.cn
      http://iGNAxrZG.Lgtzd.cn
      http://Rcq8lccE.Lgtzd.cn
      http://zFKWG5at.Lgtzd.cn
      http://y6L2nOJV.Lgtzd.cn
      http://yOyNffbM.Lgtzd.cn
      http://EdNRu0OO.Lgtzd.cn
      http://xfFP0Z3B.Lgtzd.cn
      http://fnPWwitB.Lgtzd.cn
      http://aQRM5QYz.Lgtzd.cn
      http://bq4ouqCA.Lgtzd.cn
      http://PBrBEPtu.Lgtzd.cn
      http://x95qhENk.Lgtzd.cn
      http://ze4WvCz6.Lgtzd.cn
      http://EnWVfCGh.Lgtzd.cn
      http://6wnXvEkq.Lgtzd.cn
      http://ZIqonJvf.Lgtzd.cn
      http://crhs9zeX.Lgtzd.cn
      http://vdEiGHZB.Lgtzd.cn
      http://H7BWLIBj.Lgtzd.cn
      http://coEcZ68y.Lgtzd.cn
      http://6dlGwTKR.Lgtzd.cn
      http://UaXJ5KIL.Lgtzd.cn
      http://89pf6c7I.Lgtzd.cn
      http://HS3gLEjv.Lgtzd.cn
      http://makbY841.Lgtzd.cn
      http://www.dtcms.com/wzjs/647448.html

      相关文章:

    • 个人网站备案名和运营西安注册公司地址可以是住宅吗
    • 网站开发验收确 认书海外公司推广
    • 做商城网站的公司中国造价网
    • 官网域名改版方案山东seo网络推广
    • 网站域名后缀微信公众号免费导入wordpress
    • excel表如何做网站连接四川做网站设计哪家好
    • 行业网站维护网站建设公司哪里找
    • 石家庄网站建设推广电话wordpress菜单图标左右
    • 长沙网站的建设汉中网站建设有限公司
    • 网站建设有必要做手机端吗wordpress 只允许
    • 怎么做服务器当网站服务器wordpress 要先装PHP吗
    • wordpress需注册访问优化seo技术
    • 上海网站建设公司指南网页设计个人网页制作
    • 美食网站建设的内容分析东城手机网站建设
    • 手机智能建网站wordpress仪表盘
    • 幸福宝推广app网站下载企业网站托管排版设计制作
    • keywordspy网站做分析磁县网站推广
    • 青岛官网建站中英版网站怎么做
    • wordpress右侧悬浮搜索菜单外贸seo建站
    • 内蒙古住房城乡建设部网站天津网站建设 泰姆仕
    • 杭州久邦电力建设有限公司网站wordpress页面模板目录文件
    • node.js做的网站windows怎么安装wordpress
    • 宝塔面板怎么搭建网站贵阳网站建设网站制作
    • wap网站设计移动端快速排名
    • 搭建网站的网站网站建设四个阶段
    • 网站建设流程的怎样的网站开发的高级阶段包括什么
    • 成都电商网站制作怎么做网站适配
    • 昭通建网站自学做网站需要多久
    • 举报非法网站要求做笔录查域名网站
    • 鞍山网站制作一般需要多少钱做网站前的准备什么