回复“书籍”即可获赠Python从入门到进阶共10本电子书
大家好,我是Python进阶者。
一、前言
前几天在Python最强王者交流群有个叫【Chloé】的粉丝问了一个关于Python类变量和实例变量的问题,这里拿出来给大家分享下,一起学习。
这个粉丝在法国留学,所以提问是英文的,当然了英文看上去也不难,有点二级英文基础,也看得懂,实在不行,在线翻译一下也问题不大了。
二、解决过程
这里给出【🌑(这是月亮的背面)】大佬的解答:
这里主要涉及到三个部分,类属性,实例属性,及实例属性的引用对象指向性问题。在该例中counter为类属性,__first为实例属性,print函数中的counter为实例属性的引用对象指向性问题。当ExampleClass类实例化时,__init__魔法函数会自动执行其下方的代码段,而下方代码段涉及到两种属性的变化,实例属性为该实例化对象特有的,即实例化完成后才会存在,每个实例化对象之间的实例属性是独立的,从你下方的print打印结果也能看出,实例对象.__dict__输出当前实例化对象的实例属性。而类属性只要定义完类,就已经存在,使用类.类属性可以引用该类属性,也可以进行修改,类属性是所有实例化对象共享的,在此例中每次实例化类后,ExampleClass.counter都会加1,在三次print中能看到输出值都是一样。
【月神】在这里还多了一些拓展。
在__init__中,在ExampleClass.counter += 1前添加了一行self.counter += 1;这里说明下实例属性的引用方式,在类实例化后,首先引用实例属性已有的,而如果找不到会往上寻找,即找类属性,在修改后的代码里,我为实例对象增加了一个实例属性counter,在print里的实例对象.__dict__也能看到实例属性中存在counter,而此时实例对象.counter引用到的是实例属性,而非类属性。这里再说一下为什么self.counter += 1能够正常执行,上述说到实例属性的引用会向上寻找,则进行+= 1计算时,会引用类属性,第一次实例化中,类属性下的counter为0,加1后赋值给实例属性下的counter,那么第一个实例对象的counter打印出来就是1,第二次实例化,在第一次实例化的过程中,类属性下counter也进行了加1,反映到第二次中,使用到的类属性counter此时已经为1,进行加1赋值给第二次实例属性的counter,即2,第三次类似。
【巧用ChatGPT轻松搞定Excel宣传文案】
巧用AI轻松掌握Excel,以趣味互动的方式高效解决工作难题,
全面提升数据处理能力,既省时省力,又能实现技能与效率的双重突破。
关键点
学会借力:巧用Al助力Excel,轻松搞定各种数据。
易于实践:集趣味性、互动性和实践性,易于操作。
全面解锁:从点到面,花式解锁工作中各种问题。
做到极致:不只提高效率,更能突破难点,既省时又省力。
内容简介
本书通过ChatGPT技术,帮助读者轻松掌握Excel,快速提升Excel的应用能力。全书分为11章,内容主要包括:Excel基础认知;数据录入和编辑;数据可视化;数据处理分析;快捷键和数据保护;宏的应用;PowerQuery连接数据源进行数据处理和转换;高阶数据分析和建模。对于Excel的不同功能,通过使用不同的ChatGPT提问技巧,让大家在接触到新知识时可以更快地进行学习和掌握,从而提高工作效率。
本书内容通俗易懂,理论和实践相结合,通过合适的知识点划分,整体结构由浅入深,并且通过提问技巧有针对性地和ChatGPT进行提问互动,能够更好地让读者根据自己的理解情况进行自定义学习和知识掌握。本书特别适合Excel和ChatGPT的入门读者和进阶读者,尤其是想要自定义、自主化、个性化学习的读者。无论是学生、职场人士还是数据分析从业者,都能从本书中获得实用的Excel技能,提升工作效率。
作者简介
段雪莹,曾供职于上汽通用汽车有限公司、上海拍拍贷金融信息服务有限公司、深圳传音控股股份有限公司等知名企业。有多年的大数据分析及开发经验,熟悉各类数据分析工具。多次参与Kaggle比赛,达到在全球4000名参赛者中排名前5%的成绩。在工作期间担任企业内部培训讲师,擅长将复杂的数据分析知识以通俗易懂的方式传授给学员。
三、总结
大家好,我是Python进阶者。这篇文章基于粉丝提问,针对Python类变量和实例变量的问题,给出了具体说明和演示,顺利地帮助粉丝解决了问题。
总的来说,类变量:可在类的所有实例之间共享的值(也就是说,它们不是单独分配给每个实例的)。实例变量:实例化之后,每个实例单独拥有的变量。
类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象
最后感谢粉丝【Chloé】提问,感谢【月神】和【dcpeng】大佬给出的示例和代码支持,感谢粉丝【Toria D.】、【Zhang Zhiyu】、【PI】等人参与学习交流。
小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。
------------------- End -------------------
往期精彩文章推荐:
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
/今日留言主题/
随便说一两句吧~