Maison  >  Article  >  développement back-end  >  Héritage unique et héritage multiple en Python

Héritage unique et héritage multiple en Python

不言
不言original
2018-06-04 17:44:082437parcourir

Cet article présente principalement l'héritage unique et l'héritage multiple en Python, et combine des exemples avec une analyse détaillée des concepts, principes, méthodes de mise en œuvre et précautions de fonctionnement associées à l'héritage unique et à l'héritage multiple dans la programmation orientée objet Python. it Vous pouvez vous référer à ce qui suit

Les exemples de cet article décrivent l'héritage unique et l'héritage multiple en Python. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Héritage unique

Introduction

Python prend également en charge l'héritage de classe. Si un langage ne prend pas en charge l'héritage, les classes n'ont aucun sens. La définition d'une classe dérivée est la suivante :

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

Vous devez faire attention à l'ordre de la classe de base entre parenthèses. les mêmes noms de méthode dans la classe de base, et lorsqu'elle n'est pas spécifiée lorsqu'elle est utilisée dans une sous-classe, Python recherche de gauche à droite, c'est-à-dire que lorsque la méthode n'est pas trouvée dans la sous-classe, il recherche de gauche à droite pour voir si la méthode est incluse dans la classe de base.

BaseClassName (le nom de la classe de base dans l'exemple) doit être défini dans la même portée que la classe dérivée.
En plus des classes, vous pouvez également utiliser des expressions, ce qui est très utile lorsque la classe de base est définie dans un autre module :

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. >ken Said : J'ai 10 ans et je suis en 3e année

Héritage multiple

1 Introduction.

Python offre également une prise en charge limitée de l'héritage multiple. La définition de classe de l'héritage multiple est la suivante :

Vous devez faire attention à l'ordre des classes parentes entre parenthèses. noms de méthodes dans la classe parent, Lorsqu'il n'est pas spécifié lors de l'utilisation d'une sous-classe, python recherche de gauche à droite, c'est-à-dire que lorsque la méthode n'est pas trouvée dans la sous-classe, il recherche de gauche à droite pour voir si la méthode est incluse dans la classe parent.
class DerivedClassName(Base1, Base2, Base3):
  <statement-1>
  .
  .
  .
  <statement-N>

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. 🎜>

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn