Python面对对象封装
1.1 面向过程和面向对象
根据操作数据的函数或语句块来设计程序的过程,叫做面向过程编程。
与之相对应的,如果把数据和功能结合起来,用称为对象的东西包裹起来,这种组织程序的方法称为面向对象的编程。
面向对象的编程一般用在稍微大型的项目或者是要求更加合理的解决方案的场合,相对与面向过程的编程有优势。
1.2 面向对象的特性
面向对象的编程有三个特性:封装、继承和多态,这里会分别作介绍。
1.3 类和对象
类就是一个新的、程序员自己根据需求定义的一个新的类型,而对象是这个类型的一个实例。比如说,定义了一个新的类型Person,然后用这个类型定义了一个变量tom,这里,tom就是一个对象,而Person就是一个类。
2、封装
面向对象的程序设计中,某个类把所需要的数据(也可以说是类的属性)和对数据的操作(也可以说是类的行为)全部都封装在类中,分别称为类的成员变量和方法(或成员函数)。这种把成员变量和成员函数封装在一起的编程特性称为封装。
2.1 类的属性
类由属性和方法组成,类的属性是对数据的封装,而类的方法是对类的行为的封装。
类的属性按使用范围分为共有属性和私有属性。具体地,在Python实现面向对象的编程思想的时候,封装在类中的属性可以分为两种:数据类的属性和数据对象的属性(也可以成为数据类的成员变量和属于对象的成员变量),其中,这两种成员变量又各自分为共有成员变量和私有成员变量。
2.1.1 类的成员变量和对象的成员变量
类的成员变量定义在类中,和类的成员函数在同一缩进等级。而对象的成员变量定义在init(self)成员函数中,和init(self)函数下的变量和语句在同一等级。
通俗地讲,类的成员变量属于类,共类的所有对象和类本身所共有,也就是说所有的类的对象和类只有一份这样的变量。
而对象的成员变量属于类的对象本身,每个对象都有一份,而且各个对象之间互不影响。
2.1.2 公有成员变量和私有成员变量
python中用成员变量的名字来区分是共有成员变量或者是私有成员变量。
python中,以两个下划线‘__’开头的变量都是私有成员变量,而其余的变量都属于公有成员变量。
其中,私有的成员变量只能在类的内部访问,而共有的公有的成员变量可以在类的外部进行访问。