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
    +关注

    关注

    57

    文章

    4858

    浏览量

    89600
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电源里的“特种部队”:揭秘115V/400Hz高频电力的神秘面纱与应用领域

    ”,虽然小众,却肩负着至关重要的使命。今天,就让我们一起揭开它的神秘面纱。一、为什么是400Hz?高频电力的优势何在?与常见的50/6
    的头像 发表于 08-29 10:48 554次阅读
    电源里的“特种部队”:揭秘115V/400Hz高频电力的<b class='flag-5'>神秘</b><b class='flag-5'>面纱</b>与应用领域

    光模块拉环颜色背后的神秘意义,你知道多少?

    在数据中心的复杂网络世界里,光模块扮演着至关重要的角色,它负责实现电信号与光信号之间的高效转换,确保数据在光纤网络稳定、高速地传输。而光模块上小小的拉环颜色,看似不起眼,却隐藏着诸多关键信息,下面跟着小易,一起揭开神秘
    的头像 发表于 08-05 16:22 615次阅读
    光模块拉环颜色背后的<b class='flag-5'>神秘</b>意义,你知道多少?

    融大视觉:投影融合处理器的应用场景

    如今,投影融合处理器已经渗透到我们生活的方方面面,在众多场景中发挥着至关重要的作用。接下来,就为大家揭开它在不同领域应用的神秘面纱
    的头像 发表于 07-29 18:20 314次阅读

    linux虚拟环境调用Linux 版matlab编译的python库时出错

    、readme.txt、 requiredMCRProducts.txt、init.py、CAO_python.ctf。 在linux环境按照以下步骤安装matlab runtime2018b: ① cd到MCR
    发表于 07-18 10:40

    FPGA的基础概念和应用场景

    看似神秘的技术名词,究竟是什么?又为何能在电子领域掀起一场又一场变革?让我们一同揭开 FPGA 的神秘面纱
    的头像 发表于 06-30 16:13 3974次阅读
    FPGA的基础概念和应用场景

    突破!华为先进封装技术揭开神秘面纱

    在半导体行业,芯片制造工艺的发展逐渐逼近物理极限,摩尔定律的推进愈发艰难。在此背景下,先进封装技术成为提升芯片性能、实现系统集成的关键路径,成为全球科技企业角逐的新战场。近期,华为的先进封装技术突破引发行业高度关注,为其在芯片领域的持续创新注入强大动力。 堆叠封装,创新架构 华为公布的 “一种芯片堆叠封装及终端设备” 专利显示,其芯片堆叠封装技术通过将多个芯片或芯粒(Chiplet)以堆叠方式成在同一封装体内,实
    的头像 发表于 06-19 11:28 1045次阅读

    浮思特 | 揭开(IGBT)的神秘面纱,结构原理与应用解析

    在(绝缘栅双极型晶体管)IGBT出来之前,最受欢迎和常用的功率电子开关器件是双极结晶体管(BJT)和场效应晶体管(MOSFET)。然而,这两种组件在高电流应用中都有一些限制。因此,我们转向了另一种受欢迎的功率电子开关器件,称为IGBT。TRINNOIGBT你可以将IGBT看作BJT和MOSFET的结合体,这些组件具有BJT的输入特性和MOSFET的输出特性。
    的头像 发表于 06-17 10:10 2709次阅读
    浮思特 | <b class='flag-5'>揭开</b>(IGBT)的<b class='flag-5'>神秘</b><b class='flag-5'>面纱</b>,结构原理与应用解析

    镀膜技术AR、AG、AF究竟代表什么

    在日常使用手机、平板、车载屏幕甚至医疗设备时,您是否曾为恼人的屏幕反光看不清LCD屏幕上的内容、在强光下刺眼眩目、或是屏幕沾满指纹油污影响观感和操作而困扰?其实,这些问题的解决,很大程度上依赖于屏幕表面几项关键的“隐形”技术:AR、AG 和 AF。今天,就让我们揭开它们的神秘
    的头像 发表于 06-12 13:50 4758次阅读

    立讯技术OmniEdge CRE产品的六大优势

    本期让我们揭开立讯技术OmniEdge CRE的神秘面纱,看看领航新一代硬件接口的产品,有哪些“黑科技”!
    的头像 发表于 04-22 15:42 761次阅读
    立讯技术OmniEdge CRE产品的六大优势

    防水连接器:电源与工业领域的守护神

    在电源与工业领域的浩瀚海洋,有一种小小的元件,它默默无闻,却扮演着不可或缺的角色——它就是防水连接器。今天,让我们一起来揭开这位守护神的神秘面纱
    的头像 发表于 04-19 09:54 579次阅读
    防水连接器:电源与工业领域的守护神

    工业总线:智能制造的神经系统

    在智能制造的浪潮,工业总线技术如同人体的神经系统,静默而高效地在各个设备间传递信息,确保整个生产流程的顺畅运行。今天,就让我们一起揭开工业总线的神秘面纱,看看它如何在现代工业中发挥着
    的头像 发表于 02-28 14:11 663次阅读

    发烧友必看:揭秘逻辑LC电路的神秘作用

    的应用领域,成为了众多电子发烧友探索与研究的热点。今天,就让我们一同揭开逻辑LC电路的神秘面纱,深入探讨它在电子世界扮演的重要角色。 电子发烧友必看:揭秘逻辑LC电路的
    的头像 发表于 02-19 15:19 1141次阅读

    防水连接器:工厂环境的守护神

    在工业制造的世界,每一个细节都至关重要。连接器,作为电子设备不可或缺的组成部分,承担着信号和电力传输的重任。而在充满挑战的工厂环境,防水连接器的最大作用究竟是什么呢?让我们一起来揭开
    的头像 发表于 02-17 15:31 787次阅读

    远程分布式 IO 模块的数字量模块:工业自动化的 “神经末梢”

    在工业自动化的宏大舞台上,远程分布式 IO 模块正扮演着越来越关键的角色,而其中的数字量模块更是如同 “神经末梢”,敏锐地感知和传递着工业生产中的各种状态信息。今天,就让我带您走进远程分布式 IO 模块数字量模块的世界,揭开神秘
    的头像 发表于 02-13 10:40 734次阅读
    远程分布式 IO 模块<b class='flag-5'>中</b>的数字量模块:工业自动化的 “神经末梢”

    什么是MOSFET栅极氧化层?如何测试SiC碳化硅MOSFET的栅氧可靠性?

    氧化层?如何测试碳化硅MOSFET的栅氧可靠性?”让我们一起跟随基本半导体市场部总监魏炜老师的讲解,揭开这一技术领域的神秘面纱
    发表于 01-04 12:37