0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

揭开Python类中self的神秘面纱

汽车玩家 来源:码农阿勇 作者:码农阿勇 2020-01-19 17:51 次阅读

许多python初学者,在接触到python面向对象的时候,就被类中包含的方法中的self打败了,不知道self是何物?

既然写在方法中,是必须参数,为何在调用方法的时候不给它传参数还能正常运行?和我们前面学的函数传参这块矛盾么?勇哥在这里给慢慢大家揭开self的神秘面纱。

首先我们看下如下代码:

揭开Python类中self的神秘面纱

改进上述代码,我们来探索下self到底是个什么东西?大家应该记得python中有一个id()内置函数,它可以返回指定变量在内存中存放的地址。

Self既然作为show方法的形参,那我就可以在该方法内部通过print打印,该形参变量在内存中的存放位置;我们在类外创建的对象mytest,它其实也是一个变量,我也可以通过id函数打印给变量在内存中的存放位置,改进后的代码执行结果如下:

揭开Python类中self的神秘面纱

通过上图,我们发现对象mytest变量的存放地址和self的内存存放地址竟然是一样的,这就意味它们代表的是一个东西,那就是mytest变量本身。当系统在执行mytest=test()的时候,python的解释器会悄悄的帮我们把mytest实例变量传给了self。所以后边我们再调用该方法的时候,不需要再给该方法传参数了。

另外类中的普通方法参数self必须写在最前边(即最左边),self参数本身的名字可以修改,但是不推荐,因为大家都约定叫这个名字了,所以我们就跟着随大流好了。对于接触过其他编程语言的人来说,python中是self与C++JAVA中类中的this关键字意义是一样的。

因此self在方法中是必须(位置)参数没错,但是在创建对象或实例化的那一刻,python解释器就帮我们传递了当前的对象给self了,所以我们再调用该方法的时候不需要在传了。正是因为方法中有self,我们就可以在方法中对这个实例的属性进行操作了,记住self参数指向了当前对象本身。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    56

    文章

    4781

    浏览量

    84442
收藏 人收藏

    评论

    相关推荐

    解读版|Air780E软件C语言内存数组的神秘面纱

    今天我们来揭开Air780E 软件 C 语言内存数组的神秘面纱,希望有所收获。
    的头像 发表于 11-17 10:00 133次阅读
    解读版|Air780E软件<b class='flag-5'>中</b>C语言内存数组的<b class='flag-5'>神秘</b><b class='flag-5'>面纱</b>!

    艾毕胜电子全自动跟拍智能云台驱动板方案的神秘面纱

    在科技飞速发展的今天,全自动跟拍智能云台已经成为摄影、直播等领域的热门设备。而在其背后,驱动板方案则是实现其出色性能的关键所在。今天,就让我们一同来揭开全自动跟拍智能云台驱动板方案的神秘面纱
    的头像 发表于 10-09 17:29 213次阅读
    艾毕胜电子全自动跟拍智能云台驱动板方案的<b class='flag-5'>神秘</b><b class='flag-5'>面纱</b>

    用智能DAC揭开医疗报警设计的神秘面纱

    电子发烧友网站提供《用智能DAC揭开医疗报警设计的神秘面纱.pdf》资料免费下载
    发表于 09-14 10:50 0次下载
    用智能DAC<b class='flag-5'>揭开</b>医疗报警设计的<b class='flag-5'>神秘</b><b class='flag-5'>面纱</b>

    北斗卫星时钟——揭开“授时”的神秘面纱

    ,这些时间信息又是从哪里来的呢?为什么我们可以随时随地都能获取准确的时间信息?这得益于高精度的 授时服务 ,今天我们就来揭开“授时”的神秘面纱。      大家都知道我国的北斗导航卫星,是用于定位导航的。那么北斗是怎么进行定位导
    的头像 发表于 07-25 16:21 342次阅读
    北斗卫星时钟——<b class='flag-5'>揭开</b>“授时”的<b class='flag-5'>神秘</b><b class='flag-5'>面纱</b>

    深入分析:常说的3H原则在PCB设计的应用

    “3H”这个设计经验我们一直在传颂,到底它在具体PCB设计项目中到底效果怎么样呢?话不多说,本期文章从理论到实际给大家全面分析,揭开它那神秘面纱
    的头像 发表于 07-15 16:49 468次阅读
    深入分析:常说的3H原则在PCB设计<b class='flag-5'>中</b>的应用

    xAI公司将在八月揭开其新Grok-2大语言模型的神秘面纱

    在科技界的浩瀚星空中,埃隆·马斯克的每一次发声都如同璀璨的新星,瞬间照亮前行的道路。近日,这位科技巨擘在推特上的一则简短宣告,再次将全球的目光聚焦于人工智能的前沿阵地——他的初创公司xAI即将在八月揭开其最新力作Grok-2大语言模型的神秘
    的头像 发表于 07-02 11:38 448次阅读

    揭开Pluto XZU20的神秘面纱—探寻未来紧凑而强大的FPGA解决方案

    创新成果具有挽救生命、改变生活和创造梦想的能力。现在让我们一起紧随Pluto产品发布会的步伐,揭开PlutoXZU20的神秘面纱,与我们一起探寻未来紧凑而强大的FP
    的头像 发表于 06-21 08:09 329次阅读
    <b class='flag-5'>揭开</b>Pluto XZU20的<b class='flag-5'>神秘</b><b class='flag-5'>面纱</b>—探寻未来紧凑而强大的FPGA解决方案

    揭开快充芯片的神秘面纱

    UFP芯片是一种用于USB快充技术的关键元件,它在移动设备和充电器之间进行通信和协调,以实现高效、安全、快速的充电过程。下面我们将揭开快充芯片的神秘面纱,深入探讨UFP快充芯片的工作原理和功能。
    的头像 发表于 04-15 12:51 565次阅读

    UFP芯片-揭开快充芯片的神秘面纱

    类型。     UFP芯片的主要功能是什么? UFP芯片,即受电端协议芯片,是快充技术的关键组件。它的主要功能是在快充过程,与充电端(通常是充电器或充电设备)进行通信和协商,以确保安全、高效、快速地充电。 具体来说,UFP芯片在接收到充电请
    的头像 发表于 04-13 20:00 663次阅读
    UFP芯片-<b class='flag-5'>揭开</b>快充芯片的<b class='flag-5'>神秘</b><b class='flag-5'>面纱</b>

    英伟达GTC大会将开幕 人形机器人成英伟达GTC议题

    英伟达创始人兼CEO黄仁勋将在北京时间3月19日凌晨发表主题演讲,预计他将为我们揭开新一代硬件产品的神秘面纱
    的头像 发表于 03-18 15:14 1566次阅读

    芯讯通打造了基于高通最新一代骁龙®X75和X72 5G调制解调器

    随着ChatGPT、文心一言等AIGC大模型的崛起,AI的神秘面纱逐渐被公众揭开
    的头像 发表于 03-14 10:00 1082次阅读

    什么是FPGA?带你初步揭开它的面纱

    领域中发挥着越来越重要的作用。那么,FPGA到底是什么,以及它在云计算行业是如何应用的呢? 首先,我们来了解一下FPGA的基本概念。FPGA是一种可编程逻辑器件,它不同于传统的逻辑电路和门阵列,如
    发表于 02-21 16:10

    AQY212S光耦合器:特性和应用揭秘

    让我们深入研究AQY212S的功能和应用,揭开这款令人印象深刻的器件的神秘面纱
    的头像 发表于 01-19 16:01 1060次阅读
    AQY212S光耦合器:特性和应用揭秘

    无源滤波设计分享,揭开测温滤波电路的神秘面纱

    在使用热电偶测温模块或设计热电偶测温电路,每个采集通道往往需要一阶甚至多阶的无源滤波电路,关于热电偶测温无源滤波电路的设计需要考虑什么因素呢?热电偶测温原理简述两种不同材料的导体A、B与采样电路
    的头像 发表于 12-11 17:42 465次阅读
    无源滤波设计分享,<b class='flag-5'>揭开</b>测温滤波电路的<b class='flag-5'>神秘</b><b class='flag-5'>面纱</b>

    AN-501推导时钟抖动引起ADC信噪比上限,为何信号没有取有效值?

    时钟抖动引起的采样噪声为: 计算SNR为: 为何这里不像《[MT-001_cn] 揭开公式(SNR = 6.02N + 1.76dB)的神秘面纱,以及为什么我们要予以关注》文章里那样,信号用
    发表于 12-01 08:30