Python面向对象中的类变量,实例变量怎么来理解?
回复“资源”即可获赠Python学习资料
大家好,我是皮皮。
一、前言
前几天在Python最强王者交流群有个叫【Chloe】的粉丝问了一个类变量和实例变量的问题,这里拿出来给大家分享下,一起学习下。
![](https://filescdn.proginn.com/264f87efb73ce074e3d0c4913ba1307b/350391e729615340c5ccf1e5fb54a57f.webp)
二、解决过程
在Python Tutorial中对于类变量和实例变量是这样描述的:
Generally speaking, instance variables are for data unique to each instance and class variables are for attributes and methods shared by all instances of the class.
通常来说,实例变量是对于每个实例都独有的数据,而类变量是该类所有实例共享的属性和方法。
针对下方的代码:
class Calculate:
A = 20
B = 20
def __init__(self,a,b):
A = a
B = b
print(self.A+self.B/2+1)
Calculate(4,10)
这个代码输出的结果是31.0
,因为self
是指向类本身,所以在init
外定义A
,B
可以用self.A
,self.B
调用,但在init
内设置的A
,B
只是局部变量。
有了以上的基础打底之后,接下来给这个代码做几个变形,就更加清晰了。
class Calculate:
A = 20
B = 20
def __init__(self,a,b):
self.A = a
self.B = b
print(self.A+self.B/2+1)
Calculate(4,10)
像上方的这个代码输出的结果就是10.0
。
下面给出【dcpeng】大佬给出的几个图解:
这么看应该清晰了
再次变形:
![](https://filescdn.proginn.com/c5001f3206bc803898f7674681cb6cf6/fb29c12e578b69b4359c86a88ca7348a.webp)
最后再给大家分享下self
这个参数,参考下图:
![](https://filescdn.proginn.com/98bd603426eb951b2ea509d38820b383/f59240d6b27dc766f846a7c3fc0dacf8.webp)
三、总结
大家好,我是皮皮。这篇文章主要分享了Python面向对象中的类变量,实例变量的问题,给出了具体的解析和代码演示,帮助粉丝顺利解决了问题。
![](https://filescdn.proginn.com/bc4d69e43e9689a329c927e1b0489a95/4fadc7799ad7d81f841378f7a16b1384.webp)
最后感谢粉丝【Chloe】提问,感谢【孤独】、【dcpeng】、【月神】给出的具体解析和代码演示,感谢【艾希·觉罗】、【】等人参与学习交流。
小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。
------------------- End -------------------
往期精彩文章推荐:
![](https://filescdn.proginn.com/90721a76706dde969c22a602e74b6041/d98a89b014fd01cd6148da158cbaba0c.webp)
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行