当前位置: 首页 > 网络应用技术

Python类可以继承几个父类?

时间:2023-03-07 13:15:55 网络应用技术

  简介:许多朋友询问有多少个父班可以继承一类Python。本文的首席CTO笔记将为您提供详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!

  单个继承:派生类只有一个基类

  多重继承:有多个派生类的基类

  一个句子中的区别是:单一继承是一种生命,而更多的继承是另一种生命

  基本的语法继承:

  当子类定义构造函数时,需要调用父级结构方法一次。

  案例演示:

  在多个继承中,所有基类的方法都可以直接继承,但是需要手工初始化属性。如果派生类中没有__init__方法,则默认情况下,第一类的属性。是__INIT __方法在派生类中,将不会获得所有基类的属性,并且需要手动初始化。

  我们定义了ChineSestudent类,其继承关系如下:

  调用基类的属性和方法

  在不同的基类中也有相同的方法。当调用派生对象时,将调用哪个父类?

  默认情况下,如果多个基类中存在相同的方法,则越高,优先级就越高。

  为了避免后期不必要的错误,建议应尽可能避免基础类的属性和方法。

  MRO(方法解决顺序)方法解析顺序

  如果是经典类(旧类型),则是MM的方法

  如果是新类,则MRO的Method-BFS(广度优先搜索)策略

  类子类(SuperClass1,SuperClass2):

  一个子类当然可以继承多个超级类。以上表示一个子类别,来自类superClass1,superClass2继承

  例如,以下代码子类C继承A类和B类

  A类:

  def __init __(自我):

  self.one =“一个”

  B类:

  def __init __(自我):

  self.two =“两个”

  C类(A,B):

  def __init __(自我):

  a .__ init __(自我)

  b。__ init __(自我)

  def printselfnum(self):

  打印(self.one,self.两个)

  C = C()

  c.printseellnum()

  python支持多个继承,并且C ++:继承子类继承同一父类的多个父类将存在一个问题。目前,父构建体方法可以被多次调用。对此问题,我找到了一些信息,尽管我自己没有验证自己。在这里,我总结了我对此问题的看法。

  Python和C ++对此问题有不同的解决方案。当然,Python也取决于其版本。

  C ++使用的解决方案是引入虚拟继承的语法,以避免同一类被构造多次。

  Python的方法是MRO(方法解决顺序,方法分析订单)。在Python2.3之前,MRO的实现基于DFS,而Python2.3之后的MRO实施基于C3 algorithm。找到的信息解释了更换的原因。算法:

  为什么使用C3算法

  C3算法首先是针对LISP提出的。它在Python中应用于解决一个问题,即基于深度优先级,原始搜索算法对局部优先级和单调性不满意。

  本地优先级:指声时,请参考父级的顺序,例如c(a,b)。如果访问C类C对象属性,则应首先找到A类,然后找到类。

  单调性:如果在C的分析顺序中,A位于B的前面,则在C中的所有子类中,它也必须满足此顺序。

  ----------------------------------------------------------------------------------------------------------------

  在新类中,当找到要调用的函数或属性时,首选宽度。

  在旧类型中,深度搜索。

  结论:以上是Python类所编写的主要CTO注释,可以继承多少个母班。希望它对您有所帮助!如果您解决了问题,请与更多关心此问题的朋友分享?