创建对象

在创建对象的时候,首先应该明白这几个概念,一个叫做定义类,一个叫做实例化。什么叫做定义类呢,定义类是定义对象或对象描述上去,就是类似抽象的一个模板,比如说房子的户型图和设计图,它本身并不是房子,我们需要通过这个图去建造房子,所以这个户型图,就可以成为一个类,而根据这个户型图实现的一个一个实际的房子称为实例化。

那什么叫做类呢?类是用来描述具有相同属性和方法对象的集合。该集合每个对象,所有的公有的属性和方法都有了。那前面,也在给大家讲过狗应该有四条腿,有一个小尾巴,这就是定义一个类。所以,泰迪是在这个类的基础上具体化了。具体化的它是有卷的毛,腿比较小,个子比较小一些,这就被称为实例化。因此,在这里面,可以总结出来。

创建对象

创建对象,首先应该明白类与对象。抽象为现实的存在,比如说根据户型图实现的一个相同布局的相同设计的房子,这个大家应该能理解。那么,在接下来看,创业对象,首先就需要一个类。

在Python中,通过class关键字定义一个类。然后,在class里面编写属性与方法。这就是关于定义一个类格式。来看看具体的代码演示:

定义一个人的类,然后在其中定义一个setName方法,参数分别为self和name。其中,self是成员方法默认带上的,用于表示当前对象。还定义了getName方法,用于获取name。另外定义一个greet方法,打印一段字符串。

然后,通过Person类分别定义两个对象,分别是foo和bar,并设置各自的名称,最后调用greet方法,一起看看结果:

这时候我们先看第一个,打印了hello I am Bela。其中,Bela正是前面通过setName设置进去的。因为greet没有返回值,因此,外层的print打印出来的结果就是None了。

在这里面提到,Person里,有三个方法,这三个方法,和我们前面所学的函数很类似,唯一不同的地方就是放在类里面的函数叫做方法,他有两个参数,其中一个参数叫做self,这个是指向对象自身,另一个则是我们自己定义的变量。

创建对象的过程就是类的实例化。实例化之后,就可以调用类里面的方法了。如果,直接打印foo对象,就可以得到这个实例在内测中的地址。

初始化

Python中,一个类自带了初始化方法,也叫做构造函数。其形式:

__init__ # 类的初始化方法,实例化的时候主动调用

注意,init前后是两个下划线。那么,可以给Person类添加一个初始化方法:

然后foo等于Person()。前面我们在实例化的时候呢,是这样实例化的,然后我们接下来运行。如下结果报错了,提示初始化方法缺少参数:

当类使用了初始化方法后,对象在实例化时必须将init中的参数一并赋予一个值。如下,修改程序,创建类的时候就把参数bela填写进去,然后调用getName方法,看看效果:

最后打印了bela,正是构造Person的时候传入的参数。

特殊方法

__init__方法就是一种特殊方法,用于对象创建的时候调用,其实,Python类还定义了很多其他特殊功能的方法,最常见的如__str__方法,用于转换字符串的时候,返回一个对象的字符值。默认情况下,__str__方法打印的是当前对象的内存地址:

更多内置方法见下表:

包括构造、析构、打印、加减乘除等各种运算。

继承

最后,给大家简单讲解类的集成。例如,以上Person就是类,foo就是实例化和对象。类又具有继承关系,父类、和子类,父类也称之为超类,superclass,子类也称之为subclass,它们之间是继承的关系。一个子类继承父类,就拥有了全部的父类的功能。喜鹊是一个类,下面有灰喜鹊、是subclass,上面有鸟类,属于superclass。这就是一种继承关系的实例。

IT赶路人

专注IT知识分享