编写类时,并非总是要从空白开始,如果你要编写的类是另一个现成类的特殊版本,可使用继承。一个类继承另一个类时,它将自动获取另一个类的所有属性和方法;原有的类称为父类,而新类称为子类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。

1.子类的方法__init__()

创建子类的实例时,Python首先需要完成的任务是给父类所有属性赋值。为此,子类的__init()__需要父类伸出援手。

实现继承只需要在类的括号里添加父类;

例如:

Python3 类继承练习题 python 类继承方法_子类

图中super()是一个特殊函数,帮助Python将父类和子类关联起来,包含父类属性,父类被称为超类,所以用的是

super。

2.Python2.7中的继承

继承语法中super()有点不同。

语法格式:

super(子类类名,变量名(如self)).__init__(父类属性(如make,meodel,year等));

3.给子类定义属性和方法

让一个类继承另一个类后,可以添加区分子类和父类所需的新属性和方法。

例如:

Python3 类继承练习题 python 类继承方法_类继承_02

结果:

4.重写父类方法

当子类需要父类的方法,而父类的方法又不能满足子类时,可以对父类的方法进行重写,重写时方法名相同,但是方法内部执行 的代码不一样,当调用方法是会执行重写之后的方法,之前父类的方法会被覆盖掉。

例如:

Python3 类继承练习题 python 类继承方法_Python3 类继承练习题_03

结果输出:

5.将实例用作属性

使用代码模拟实物时,你可能会发现自己给类添加的细节越来越多:属性和方法清单以及文件都越来越长。在这种情况下,可能需要将类的一部分作为一个独立的类提取出来。可以将大型的类拆分成多个协同工作的小类。

创建一个类作为另一个类的属性

例如:

Python3 类继承练习题 python 类继承方法_Python3 类继承练习题_04

将size类作为属性:

Python3 类继承练习题 python 类继承方法_类继承_05

输出结果:

Python3 类继承练习题 python 类继承方法_Python3 类继承练习题_06