Python面向对象中的类变量,实例变量怎么来理解?
大家好,我是皮皮。
一、前言
前几天在Python最强王者交流群有个叫【Chloe】的粉丝问了一个类变量和实例变量的问题,这里拿出来给大家分享下,一起学习下。

二、解决过程
在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】大佬给出的几个图解:

这么看应该清晰了

再次变形:

最后再给大家分享下self这个参数,参考下图:

三、总结
大家好,我是皮皮。这篇文章主要分享了Python面向对象中的类变量,实例变量的问题,给出了具体的解析和代码演示,帮助粉丝顺利解决了问题。

最后感谢粉丝【Chloe】提问,感谢【孤独】、【dcpeng】、【月神】给出的具体解析和代码演示,感谢【艾希·觉罗】等人参与学习交流。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
2020-04-16 (完结篇)Python框架FastAPI:比Flask和Tornada更高性能的API 框架
2020-04-16 (进阶篇)Python web框架FastAPI——一个比Flask和Tornada更高性能的API 框架
2020-04-16 (入门篇)Python web框架FastAPI——一个比Flask和Tornada更高性能的API 框架