Heim  >  Artikel  >  Backend-Entwicklung  >  Einzelvererbung und Mehrfachvererbung in Python

Einzelvererbung und Mehrfachvererbung in Python

不言
不言Original
2018-06-04 17:44:082492Durchsuche

Dieser Artikel stellt hauptsächlich die Einzelvererbung und Mehrfachvererbung in Python vor und kombiniert Beispiele mit einer detaillierten Analyse der Konzepte, Prinzipien, Implementierungsmethoden und zugehörigen Betriebsvorkehrungen der Einzelvererbung und Mehrfachvererbung in der objektorientierten Programmierung von Python it Sie können auf Folgendes verweisen

Die Beispiele in diesem Artikel beschreiben die Einzelvererbung und die Mehrfachvererbung in Python. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Einzelne Vererbung

1 Einführung

Python unterstützt auch die Klassenvererbung. Wenn eine Sprache die Vererbung nicht unterstützt, sind Klassen bedeutungslos. Die Definition einer abgeleiteten Klasse lautet wie folgt:

class DerivedClassName(BaseClassName1):
  <statement-1>
  .
  .
  .
  <statement-N>

Sie müssen auf die Reihenfolge der Basisklasse in Klammern achten, wenn es dieselbe Methode gibt Namen in der Basisklasse und in der Unterklasse Wenn die Klasse verwendet wird, ist sie nicht angegeben. Python sucht von links nach rechts, das heißt, wenn die Methode nicht in der Unterklasse gefunden wird, sucht sie von links nach rechts, um festzustellen, ob Die Methode ist in der Basisklasse enthalten.

BaseClassName (der Basisklassenname im Beispiel) muss im gleichen Bereich wie die abgeleitete Klasse definiert werden.
Zusätzlich zu Klassen können Sie auch Ausdrücke verwenden, was sehr nützlich ist, wenn die Basisklasse in einem anderen Modul definiert ist:

class DerivedClassName(modname.BaseClassName):

2. Code

# -*- coding:utf-8 -*-
#! python3
class people:
  #定义基本属性
  name =&#39;&#39;
  age =0
  #定义私有属性,私有属性在类外部无法直接进行访问
  __weight =0
  #定义构造方法
  def __init__(self,n,a,w):
    self.name = n
    self.age = a
    self.__weight = w
  def speak(self):
    print("%s 说: 我 %d 岁。"%(self.name,self.age))
    #单继承示例
class student(people):
  grade =&#39;&#39;
  def __init__(self,n,a,w,g):
    #调用父类的构造函数,下面两种方式都可以
    #people.__init__(self,n,a,w)
    super().__init__(n,a,w)
    self.grade = g
    #覆写父类的方法
  def speak(self):
    print("%s 说: 我 %d 岁了,我在读 %d 年级"%(self.name,self.age,self.grade))
s = student(&#39;ken&#39;,10,60,3)
s.speak()

3. Laufergebnisse

ken sagte: Ich 10 Ich bin 3 Jahre alt und gehe in die 3. Klasse

Mehrfachvererbung

1 Einführung

Python bietet auch begrenzte Unterstützung für Mehrfachvererbungsformen. Die Klassendefinition der Mehrfachvererbung lautet wie folgt:

class DerivedClassName(Base1, Base2, Base3):
  <statement-1>
  .
  .
  .
  <statement-N>

Sie müssen auf die Reihenfolge der übergeordneten Klasse in Klammern achten Methodennamen in der übergeordneten Klasse. Wenn die Unterklasse verwendet wird, wird sie nicht angegeben. Python sucht von links nach rechts. Wenn die Methode nicht in der Unterklasse gefunden wird, sucht es von links nach rechts, um festzustellen, ob die Methode vorhanden ist in der übergeordneten Klasse enthalten.

2. Code

# -*- coding:utf-8 -*-
#! python3
#类定义
class people:
  #定义基本属性
  name =&#39;&#39;
  age =0
  #定义私有属性,私有属性在类外部无法直接进行访问
  __weight =0
  #定义构造方法
  def __init__(self,n,a,w):
    self.name = n
    self.age = a
    self.__weight = w
  def speak(self):
    print("%s 说: 我 %d 岁。"%(self.name,self.age))
#单继承示例
class student(people):
  grade =&#39;&#39;
  def __init__(self,n,a,w,g):
    #调用父类的构函
    people.__init__(self,n,a,w)
    self.grade = g
  #覆写父类的方法
  def speak(self):
    print("%s 说: 我 %d 岁了,我在读 %d 年级"%(self.name,self.age,self.grade))
#另一个类,多重继承之前的准备
class speaker():
  topic =&#39;&#39;
  name =&#39;&#39;
  def __init__(self,n,t):
    self.name = n
    self.topic = t
  def speak(self):
    print("我叫 %s,我是一个演说家,我演讲的主题是 %s"%(self.name,self.topic))
#多重继承
class sample(speaker,student):
  a =&#39;&#39;
  def __init__(self,n,a,w,g,t):
    student.__init__(self,n,a,w,g)
    speaker.__init__(self,n,t)
test = sample("Tim",25,80,4,"Python")
test.speak()#方法名同,默认调用的是在括号中排前地父类的方法

3. Laufergebnisse

我叫 Tim,我是一个演说家,我演讲的主题是 Python

Das obige ist der detaillierte Inhalt vonEinzelvererbung und Mehrfachvererbung in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn