首页 > 后端开发 > 正文

实例方法中的 self 和类方法中的 cls 有什么不同?

2024-02-17 04:32:43 | 我爱编程网

小编今天整理了一些实例方法中的 self 和类方法中的 cls 有什么不同?相关内容,希望能够帮到大家。

本文目录一览:

实例方法中的 self 和类方法中的 cls 有什么不同?

Python中的self有啥用 self.name=name这句话有啥作用

self指的是自身,这里的self就是类自身,self.name就是Person类里的变量,是Person所有。而name是外部传来的参数,不是Person自己的变量。self.name=name这句话就是把外部传来的参数name值赋值给Person类内自己的变量name。

实例方法中的 self 和类方法中的 cls 有什么不同?

实例方法中的 self 和类方法中的 cls 有什么不同?

在Python中,实例方法中的self表示类的实例化对象,而类方法中的cls则表示类本身。

实例方法的第一个参数是self,它必须存在于所有实例方法中,并且必须指向实例对象本身。实例方法可以访问实例属性和实例方法,也可以被子类继承。

类方法的第一个参数是cls,它必须存在于所有类方法中,并且必须指向类本身。类方法可以访问类属性和类方法,但是不能访问实例属性和实例方法。

实例方法中的 self 和类方法中的 cls 有什么不同?

Python里面的self,是谁啊?

大家学Python面向对象的时候,总会遇到一个让人难以理解的存在:self

这个self到底是谁啊,为什么每个类实例方法都有一个参数self,它到底有什么作用呢?

「先下结论:类实例化后,self即代表着实例(对象)本身」

想要理解self有个最简单的方法,就是你把self当做

「实例(对象)的身份证。」

Python的类不能直接使用,只有通过创建实例(对象)才能发挥它的功能,每个实例(对象)都是独一无二的,它可以调用类的方法、属性。类就像灵魂附体一样,让实例(对象)有了自己(self)的功能。

初学者会发现,类的方法(构造方法和实例方法)中都会有一个固定参数self,其实这个参数就是代表着实例(对象)本身,就像是一个身份证,实例可以凭着身份证去调用类方法。

类比人类,人类就是一个Python类,每个个体的人代表着实例(对象),而每个人的身份证代表的Python中self,每个人可以凭借身份证去上大学、坐高铁、住酒店...(方法),而Python中的实例(对象)也可以凭着self去调用类的方法。

上面是用类比的方法解释了下self的含义,说到底self就是代表着实例本身,我爱编程网

「当某个实例(对象)调用类方法时,该对象会把自身的引用作为第一个参数自动传给该方法,而这第一个参数就是self。」

而且self只是约定俗成的写法,你可以用任何其他名称代替self,不会改变代码含义,只不过我们一般不这样做。

为了更好的说明self的作用,我们来举个例子,下面有一个Students类:

先来个实例student_a

再来个实例student_b

可以看出,实例(对象)不一样,打印出的结果也不一样,当类被实例化后,self.name其实就等于实例(对象).name

还是以刚刚的代码为例,我们再来调用里面的实例方法,里面会打印出self,就能看得更加明显了

实例student_a:

输出结果:

实例student_b:

输出结果:

大家能清楚看到两个实例打印出的self是不一样的,因为self代表着实例(对象)本身。

以实例student_b来说,打印self出现下面对象信息

如果再打印 student_b,会出现同样的结果

输出:

这个时候是不是就清楚了,类实例化后,self即代表着实例(对象)本身

以上就是我爱编程网小编为大家带来的内容了,想要了解更多相关信息,请关注我爱编程网。
与“实例方法中的 self 和类方法中的 cls 有什么不同?”相关推荐
学python的10个有效方法有哪些?
学python的10个有效方法有哪些?

学python的10个有效方法有哪些?学习python主要是自学或者报班学习的方式,但不建议自学。如果想通过学习python改行,那就需要明确一下自己的方向。因为python编程有很多方向,有网络爬虫、数据分析、Web开发、测试开发、运维开发、机器学习、人工智能、量化交易等等,各个方向都有特定的技能要求。想学的话,当然是可以学习的。python是一门语法优美的编程语言,不仅可以

2023-12-28 20:18:42
Python怎么输入和输出?Python的输入和输出方法
Python怎么输入和输出?Python的输入和输出方法

Python怎么输入和输出?Python的输入和输出方法Python是一门开源免费、通用型的脚本编程语言,它上手简单,功能强大,它也是互联网最热门的编程语言之一。不管是传统的Web开发、PC软件开发、Linux运维,还是大数据分析、机器学习、人工智能,Python都能胜任。对于准备自学或者想要提升Python的小伙伴来说,可能找到一套合适的课程学习往往能够事半功倍!为大家提供到了四套潮享教

2023-12-13 15:05:46
int和%在python语言中有什么作用?有哪些不同?
int和%在python语言中有什么作用?有哪些不同?

int和%在python语言中有什么作用?有哪些不同?int在python里是一个类,表示是整形,比如1,2,3这些在python里都是int形。你可以直接a=1,这时候a就是int形的变量;也可以s=int(1),这个和上面的效果是一样的。在屏幕输出的命令中,%是格式符号,%d代表整数,%s代表字符单独看%,是一个运算符号,求余数1%5=1,2%5=2,3%5=3,

2024-01-29 14:05:47
Python中怎么调用C代码?Python中调用C代码方法
Python中怎么调用C代码?Python中调用C代码方法

Python中怎么调用C代码?Python中调用C代码方法Python是一门较为简单的编程语言,如今很多小学都已经开始教授python了,可见它的热度之高。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。而如果你是零基础想要自学Python的话,那么就建议你进行专业系统的视频课程学习!为帮助广大Python学习爱好者提升,精选到了几套专业优质的Python自学视频课程,学

2023-12-16 10:22:52
Python开发文字点选验证码,有什么推荐的方法?
Python开发文字点选验证码,有什么推荐的方法?

Python开发文字点选验证码,有什么推荐的方法?文字点选验证码(ClickCaptcha)是一种常见的验证码形式,通常由若干个字符或单词组成,要求用户点击其中指定的字符或单词,以验证用户身份。在Python开发中实现文字点选验证码,一种常用的方法是使用图像处理库和机器学习库,以下是一些常用的库和方法:PIL库:PythonImagingLibrary(PIL)是一个Pyt

2024-01-06 09:35:40
anaconda怎么用Python代码(Anaconda的使用方法)
anaconda怎么用Python代码(Anaconda的使用方法)

anaconda怎么用Python代码(Anaconda的使用方法)Anaconda安装成功后,python也默认安装完成。Anaconda启动成功后,默认的环境为base环境,对于初学者来说不太好理解。base环境就好像我们操作系统的C盘的“桌面”一样,中文件不能都放在桌面上,要在除C盘以外的分驱上建立文件夹来管理计算机中的文件。也可以理解为windows系统中的用户,管理员可以建立

2023-12-21 13:59:23
初学python编程什么方法可取?
初学python编程什么方法可取?

初学python编程什么方法可取?1、设置一个闹钟提前30分钟起床你每天学习Python的最佳时间是在早晨。从生物学角度来讲,一个人脑子最清醒的时间是每日清晨起床后的两个小时。如果不想浪费自己的脑细胞,那就晚上早睡,第二天早点起床,这样就可以在上课或上班前练习一下。如果能提前给自己安排好学习的计划和内容,就能很大程度的提升学习效率,达到事半功倍的效果。一个简单的办法就是给自己一个“约

2024-01-03 10:26:44
怎么在CMD里安装python?在CMD安装python的方法教程
怎么在CMD里安装python?在CMD安装python的方法教程

怎么在CMD里安装python?在CMD安装python的方法教程Python是一门开源免费、通用型的脚本编程语言,它上手简单,功能强大,它也是互联网最热门的编程语言之一。不管是传统的Web开发、PC软件开发、Linux运维,还是大数据分析、机器学习、人工智能,Python都能胜任。对于准备自学或者想要提升Python的小伙伴来说,可能找到一套合适的课程学习往往能够事半功倍!为大家提供到了

2023-12-18 06:37:12