面向对象的编程---object oriented programming,简称:OOP,是一种编程的思想。

Python是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。在前面几篇中知识简单的提到过如何定义一个类,并没有深入说明,所以这里专门对Python的面向对象编程记录一下。

面向对象的基本特征包含类(class)、类变量、数据成员、方法重写、实例变量、继承、实例化、方法、对象等几个特征。

类的定义

类的定义很简单,class+类名+冒号,就行了。例如:

python学习之路(13):简单几行代码让你了解python面向对象「1」

上面的pass在前几篇中说到过,pass没有多大意义,只是为了让代码保持完整性而写的。创建好类之后,我们可以通过类名来访问它的属性。例如:

python学习之路(13):简单几行代码让你了解python面向对象「1」

类对象

类对象支持两种操作:属性引用和实例化。

Python 中所有的属性引,都可以用一样的语法:obj.name。比如:

python学习之路(13):简单几行代码让你了解python面向对象「1」

上面的tc为实例化类对象。

构造方法

很多类在将对象创建的时候有个初始状态的。所以会定义一个名为 __init__() 的特殊方法即构造方法。比如:

python学习之路(13):简单几行代码让你了解python面向对象「1」

上面的构造器里为什么有一个self参数,在下面会讲到,类定义了 __init__() 方法的话,类的实例化操作会自动调用 __init__() 方法。当然也可以给构造器一个参数,实例化类对象的时候就可以传一个参数进来。例如:

python学习之路(13):简单几行代码让你了解python面向对象「1」

类方法与self

在类的内部,和普通函数一样,都使用 def 关键字来定义一个方法。但与普通函数不同的是,类方法里必须包含参数self做为参数,而且必须是第一个参数。所以上面的构造器会有一个self参数。Self代表的是类的实例,而不是类本身。其实第一个参数也不一定要用self。只要你喜欢,你可以写成除python关键字之外的任意单词字母,只不过大家都习惯默认用self了。

下面来看一下类方法的定义:

python学习之路(13):简单几行代码让你了解python面向对象「1」

私有属性与私有方法

两个下划线开头,就是声明该属性为私有,不能在类地外部被使用或直接访问。只能在类的内部使用,例如:

python学习之路(13):简单几行代码让你了解python面向对象「1」

上面__为私有属性,我实例化类后是访问不到的,直接访问代码就会报错。

私有属性只能在类的内部使用,例如:

python学习之路(13):简单几行代码让你了解python面向对象「1」

私有方法和私有属性一样也是两个下划线开头,并且只能在类内部调用,在外部调用就会报错,例如:

python学习之路(13):简单几行代码让你了解python面向对象「1」

今天先学习到这里消化一下,明天继续学习python面向对象,再来记录一下。