如何区分Python面向对象中的类变量与实例变量?

2026-05-28 19:262阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计732个文字,预计阅读时间需要3分钟。

如何区分Python面向对象中的类变量与实例变量?

家庭好,我是皮皮。

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

二、解决过程在Python中,类变量和实例变量是区分开来的。下面我来解释一下:

1. 类变量:属于整个类的属性,所有实例都可以访问。类变量在类定义时声明,且不使用self关键字。

2. 实例变量:属于某个具体的实例,每个实例都有自己的实例变量。实例变量在实例化时创建,并且通过self关键字在类方法中访问。

下面是一个简单的例子:

pythonclass Person: class_variable=我是类变量

def __init__(self, name): self.instance_variable=name

p1=Person(皮皮)p2=Person(小美)

print(p1.class_variable) # 输出:我是类变量print(p2.class_variable) # 输出:我是类变量print(p1.instance_variable) # 输出:皮皮print(p2.instance_variable) # 输出:小美

大家好,我是皮皮。

一、前言

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

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

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。

下面给出大佬给出的几个图解:

这么看应该清晰了

如何区分Python面向对象中的类变量与实例变量?

再次变形:

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

三、总结

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

最后感谢粉丝提问,感谢、、给出的具体解析和代码演示,感谢等人参与学习交流。




本文共计732个文字,预计阅读时间需要3分钟。

如何区分Python面向对象中的类变量与实例变量?

家庭好,我是皮皮。

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

二、解决过程在Python中,类变量和实例变量是区分开来的。下面我来解释一下:

1. 类变量:属于整个类的属性,所有实例都可以访问。类变量在类定义时声明,且不使用self关键字。

2. 实例变量:属于某个具体的实例,每个实例都有自己的实例变量。实例变量在实例化时创建,并且通过self关键字在类方法中访问。

下面是一个简单的例子:

pythonclass Person: class_variable=我是类变量

def __init__(self, name): self.instance_variable=name

p1=Person(皮皮)p2=Person(小美)

print(p1.class_variable) # 输出:我是类变量print(p2.class_variable) # 输出:我是类变量print(p1.instance_variable) # 输出:皮皮print(p2.instance_variable) # 输出:小美

大家好,我是皮皮。

一、前言

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

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

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。

下面给出大佬给出的几个图解:

这么看应该清晰了

如何区分Python面向对象中的类变量与实例变量?

再次变形:

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

三、总结

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

最后感谢粉丝提问,感谢、、给出的具体解析和代码演示,感谢等人参与学习交流。