在学习之前,首先膜拜一下C罗,虽然我不是球迷,但是看你踢球真的是一种享受。,回到我们的学习中来,在前几篇文章中,经常会遇到self,当时也没细讲,只是轻微带过,不过并不代表它不重要,那么self到底是什么呢?我们在初中英语课上都学过这几个单词,myself,yourself,himself,herself,itself分别意思是我自己、你自己、他她它自己,以此类推,self也应该指的是自己,到底是不是这样呢?我们代码中看看。
如上图所示在文件selftest.py中,定义了一个Bird类,以及一个实例方法printSelf用于输出self。,准备工作完成,现在我们做个小试验。
我们分别创建两个Bird对象b1和b2,通过printSelf函数输出得知,self就是类Bird的一个对象,这个对象到底指向谁呢,不急,修改一下Bird类,再做试验
上述代码在类Bird中添加了一个方法用于输出self,想知道self是何许人吗,请继续往下看。
这段代码说明了什么了,self指向当前对象自身。那有什么用呢?我先定义一个有self的sing方法,大家想想如果没有self,你该怎么办。
大家能想到怎么获取对象的name吗?或许有,但是很难很费劲,我也想不到。这就是self的作用,它指向当前对象本身,它可以在类的任何一个地方内调用对象的任何属性和方法。self绝对是程序员的福音,不服的小伙伴,你去问问学过C语言的,指针好玩不。
self这么棒,但是我现在要告诉你,self不是必须的,你可以按照自己的想法给它起其他的名字,不懂啥意思?请看代码。
我把上一张图片里的self全用susu、xiaowu代替了,有人会说,这恐怕不行吧,我告诉你,这真行,不信,运行看看。
为什么会这样呢,因为Python默认把对象本身传给了方法的第一个参数,所以susu、xiaowu代表的全是对象b5,不过不建议这么做。self是大家约定俗成的名字,使用它,增强代码可读性嘛!你也不希望自个儿写的东西谁都看不懂吧。
,Python“类”之self就先介绍到这儿,本文知识点不多,不过要想彻底理解,还需要自己敲代码不断尝试。,感谢大家的关注和阅读,我一定会写出更好的作品,敬请享用哦!
领取专属 10元无门槛券
私享最新 技术干货