为了账号安全,请及时绑定邮箱和手机立即绑定

Python面向对象中的类变量,实例变量怎么来理解?

大家好,我是皮皮。

一、前言

前几天在Python最强王者交流群有个叫【Chloe】的粉丝问了一个类变量和实例变量的问题,这里拿出来给大家分享下,一起学习下。

image.png

二、解决过程

在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只是局部变量。

image.png

有了以上的基础打底之后,接下来给这个代码做几个变形,就更加清晰了。

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】大佬给出的几个图解:

image.png

这么看应该清晰了

image.png

再次变形:

image.png

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

image.png

三、总结

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

image.png

最后感谢粉丝【Chloe】提问,感谢【孤独】、【dcpeng】、【月神】给出的具体解析和代码演示,感谢【艾希·觉罗】等人参与学习交流。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消