
1.9 面向对象
Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本节我们将详细介绍Python的面向对象编程。如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象的编程语言的基本特征,在头脑中形成一个基本的面向对象的概念,这样有助于你学习Python的面向对象编程。
1.面向对象编程
面向对象编程(Object Oriented Programing,OOP)是一种编程范式,而编程范式是按照不同的编程特点总结出来的编程方式。面向对象编程的步骤如下:
1)把构成问题的事务分解、抽象成各个对象;
2)结合这些对象的共有属性,抽象出类;
3)类层次化结构设计——继承和合成;
4)用类和实例进行设计和实现,从而解决问题。
2.面向对象编程的特点
通过三个特点实现软件工程的3个目标:重用性、扩展性、灵活性。
1)封装:将对象的属性和行为封装起来,不需要让外界知道具体实现细节,使代码模块化,实现软件工程的重用性。
2)继承:主要描述的是类与类之间的关系,通过继承,可以在无须重新编写原有类的情况下,对原有类的功能进行扩展,实现软件工程的扩展性。
3)多态:指的是在程序中允许重名现象,即在一个类中定义的属性和方法被其他类继承后,它们可以具有不同的数据类型或表现出不同的行为,这使得同一个属性和方法在不同的类中具有不同的语义,实现软件工程的灵活性。
3.面向对象的基本概念
1)类:用来描述具有相同的属性和方法的对象的集合,它定义了该集合中每个对象所共有的属性和方法,对象是类的实例。
2)方法:类中定义的函数。
3)类变量:类变量在整个实例化的对象中是公用的,它定义在类中且在函数体之外,通常不作为实例变量使用。
4)数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
5)方法重写:如果从父类继承的方法不能满足子类的需求,那么可以对其进行改写,这个过程叫作方法的覆盖(override),也称为方法的重写。
6)局部变量:定义在方法中的变量,只作用于当前实例的类。
7)实例变量:在类的声明中,属性是用变量来表示的,这种变量被称为实例变量,是在类声明的内部、类的其他成员方法之外声明的。
8)继承:一个派生类(derived class)继承基类(base class)的属性和方法,继承也允许把一个派生类的对象作为一个基类对象对待。
9)实例化:创建一个类的实例,类的具体对象。
10)对象:通过类定义的数据结构实例;其包括两个数据成员(类变量和实例变量)和方法。