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

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

大家好,我是皮皮。


一、前言


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

5fefa7a551d8b1de88df77469338fa84.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外定义AB可以用self.Aself.B调用,但在init内设置的AB只是局部变量。

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

84302711209ad1c0117938e3ae2fef7a.png

这么看应该清晰了

253202e2b998296202f9bf1fc121143d.png

再次变形:

66d2dd853e9ed768f080b9b185621e05.png

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

ac3c9c940578c5d2a5746dad111b2c40.png


三、总结


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

f9df38938db565d6c130a07770805cc9.png

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


小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。


相关文章
|
2天前
|
前端开发 Python
Python 练习实例58
Python 练习实例58
|
2天前
|
前端开发 Python
Python 练习实例57
Python 练习实例57
|
2天前
|
前端开发 Python
Python 练习实例56
Python 练习实例56
|
2天前
|
前端开发 Python
Python 练习实例59
Python 练习实例59
|
2天前
|
人工智能 Python
Python 练习实例61
Python 练习实例61
|
2天前
|
人工智能 Python
Python 练习实例60
Python 练习实例60
|
6天前
|
Python
Python 练习实例53
Python 练习实例53
|
7天前
|
Python
Python 练习实例51
Python 练习实例51
|
6天前
|
Python
Python 练习实例54
Python 练习实例54
|
6天前
|
Python
Python 练习实例52
Python 练习实例52