当前位置 : 主页 > 编程语言 > python >

# yyds干货盘点 # Python面向对象中的类变量,实例变量怎么来理解?

来源:互联网 收集:自由互联 发布时间:2022-06-15
大家好,我是皮皮。 一、前言 前几天在Python最强王者交流群有个叫【Chloe】的粉丝问了一个类变量和实例变量的问题,这里拿出来给大家分享下,一起学习下。 二、解决过程 在Python

大家好,我是皮皮。

一、前言

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

# yyds干货盘点 # Python面向对象中的类变量,实例变量怎么来理解?_python

二、解决过程

在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​​只是局部变量。# yyds干货盘点 # Python面向对象中的类变量,实例变量怎么来理解?_类变量_02

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

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

# yyds干货盘点 # Python面向对象中的类变量,实例变量怎么来理解?_Python基础_03这么看应该清晰了

# yyds干货盘点 # Python面向对象中的类变量,实例变量怎么来理解?_Python基础_04再次变形:

# yyds干货盘点 # Python面向对象中的类变量,实例变量怎么来理解?_类变量_05

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

# yyds干货盘点 # Python面向对象中的类变量,实例变量怎么来理解?_类变量_06

三、总结

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

# yyds干货盘点 # Python面向对象中的类变量,实例变量怎么来理解?_类变量_07

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

网友评论