面向对象【day07】:类的实例化过程剖析(三)
本节内容
1、概述
2、类的语法
3、总结
一、概述
之前我们说关于python中的类,都一脸懵逼,都想说,类这么牛逼到底是什么,什么才是类?下面我们就来讲讲,什么是类?它具有哪些特性。
二、类的语法
2.1 语法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
class dog( object ): #用class定义类 "dog class" #对类的说明 def __init__( self ,name): #构造函数或者是构造方法,也可以叫初始化方法 self .name = name def sayhi( self ): #类方法 "sayhi funcation" #对类方法的说明 print ( "hello,i am a dog,my name is " , self .name) d = dog( "alex" ) #定义一个d的对象,叫实例 d.sayhi() #调用实例的方法 |
2.2 self关键字
有很多小伙伴不禁的疑问,这个self是什么鬼?为什么在执行sayhi函数时,上面的self.name可以在函数中被调用?如下图:
其实self 这个关键字相当于实例化对象本身(self相当于d),在实例化过程中,把自己传进去了,我们队上面的两行做一下解释:
2.3 函数__init__()
在类中__init__()函数叫构造函数,又叫构造方法,也可以叫初始化函数。它的作用就是初始化实例时,初始化传入实例的的默认值。如果不写__init__(),就会调用的默认为空的__init__(),说白了,这个方法不管你写不写,都会调用,而且,一旦实例化就会调用。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
class dog( object ): "dog class" def __init__( self ,name): #构造方法,不写调用默认的构造方法 self .name = name def eat( self ,food): print ( "the dog name is {0},it like food is {1}" . format ( self .name,food)) d = dog( "alex" ) d.eat( "hotdog" ) #输出 the dog name is alex,it like food is hotdog |
三、总结
最后我们画一个图,来说明一下实话过程的图,不然真的很难理解这个玩意:
由上图可知:其实self,就是实例本身!你实例化时python会自动把这个实例本身通过self参数传进去。
作者:罗阿红
出处:http://www.cnblogs.com/luoahong/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。