您当前的位置:首页 > 计算机 > 编程开发 > Python

Python class类的派生与继承详解

时间:03-29来源:作者:点击数:

继承与派生是面向对象程序设计中最重要的概念之一,本节教程就来介绍类的继承与派生。

Python 中定义一个类派生自另一个类的语法如下:

class 派生类名(基类名):
    <数据成员声明 1>
    ...
    <数据成员声明 N>

基类 BaseClassName 必须与派生类 DerivedClassName 定义在同一个作用域内。如基类来自不同的模块,可以在类名前添加模块名。在定义派生类时可以重写基类的方法。例如:

class Animal:
    name = ""
    def Speak(self):
        pass

class Cat(Animal):
    name = "狗"
    def Speak(self):
        print ("喵~喵~喵~")

class Human(Animal):
    name ="人"
    def Speak(self):
        print ("你好~")

c = Cat()
c.Speak()
h = Human()
h.Speak()

上述代码的运行结果如下所示:

>>> class Animal:
...          name = ""
...          def Speak(self):
...              pass

>>> class Cat(Animal):
...          name = "狗"
...          def Speak(self):
...              print ("喵~喵~喵~")       

>>> class Human(Animal):
...          name ="人"
...          def Speak(self):
...              print ("你好~")       

>>> c = Cat()
>>> c.Speak()喵~喵~喵~
>>> h = Human()
>>> h.Speak()
你好~

Python 支持有限的多重继承,其语法为:

class 派生类名(基类1, 基类2, ......, 基类N):
    <数据成员声明 1>
    ...
    <数据成员声明 N>

需要注意小括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,Python 将按照从左至右的顺序在这些父类中查找该方法。例如:

class Animal:
    name = ""
    def Speak(self):
        pass

class Cat(Animal):
    name = "狗"
    def Speak(self):
        print ("喵~喵~喵~")

class Human(Animal):
    name ="人"
    def Speak(self):
        print ("你好~")

class Actor(Human, Cat):
    name ="演员"
    def Speak(self):
        Human.Speak(self)
        Cat.Speak(self)

a = Actor()
a.Speak()

以上代码的运行结果如下所示:

>>> class Animal:
...          name = ""
...          def Speak(self):
...              pass

>>> class Cat(Animal):
...          name = "狗"
...          def Speak(self):
...              print ("喵~喵~喵~")       

>>> class Human(Animal):
...          name ="人"
...          def Speak(self):
...              print ("你好~")

>>> class Actor(Human, Cat):
...          name ="演员"
...          def Speak(self):
...              Human.Speak(self)
...              Cat.Speak(self)       

>>> a = Actor()
>>> a.Speak()
你好~
喵~喵~喵~
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门