继承与派生是面向对象程序设计中最重要的概念之一,本节教程就来介绍类的继承与派生。
Python 中定义一个类派生自另一个类的语法如下:
基类 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()
上述代码的运行结果如下所示:
Python 支持有限的多重继承,其语法为:
需要注意小括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,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()
以上代码的运行结果如下所示: