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

1. Python中的类变量和实例变量

在Python中,类变量和实例变量都是用来存储数据的。类变量是指属于类的变量,可以被所有实例化的对象共享。而实例变量是指属于对象的变量,只能被该对象使用。

class MyClass:

class_var = 1

def __init__(self, inst_var):

self.inst_var = inst_var

c1 = MyClass(10)

c2 = MyClass(20)

print(c1.class_var)

print(c2.class_var)

print(c1.inst_var)

print(c2.inst_var)

上面的代码中,class_var是类变量,inst_var是实例变量。class_var被所有实例化的对象共享,而inst_var只能被各自的对象使用。

2. 类变量

2.1 定义和使用类变量

在类定义中,直接在类中定义一个变量就是类变量。类变量可以通过类名和对象名访问。

class MyClass:

class_var = 1

print(MyClass.class_var)

c = MyClass()

print(c.class_var)

上面的代码中,定义了一个类变量class_var,并且分别通过类名和对象名访问了该变量。

2.2 修改类变量

如果要修改类变量的值,可以直接用类名来修改。

class MyClass:

class_var = 1

print(MyClass.class_var)

MyClass.class_var = 2

print(MyClass.class_var)

上面的代码中,首先输出类变量class_var的值为1,然后用类名MyClass来修改class_var的值为2,并再次输出class_var的值。

3. 实例变量

3.1 定义和使用实例变量

在类中的方法内部,通过self来定义实例变量。实例变量只能通过对象名来访问。

class MyClass:

def __init__(self, inst_var):

self.inst_var = inst_var

c = MyClass(10)

print(c.inst_var)

上面的代码中,定义了一个实例变量inst_var,在类的方法__init__中使用self进行了定义。然后创建了一个对象c,并用对象名c来访问实例变量。

3.2 修改实例变量

如果要修改实例变量的值,可以直接使用对象名来修改。

class MyClass:

def __init__(self, inst_var):

self.inst_var = inst_var

c = MyClass(10)

print(c.inst_var)

c.inst_var = 20

print(c.inst_var)

上面的代码中,首先输出了实例变量inst_var的值为10,然后通过对象名c来修改inst_var的值为20,并再次输出了inst_var的值。

4. 总结

类变量和实例变量都是用来存储数据的,但是它们的作用范围不同。类变量属于类,可以被所有实例化的对象共享;实例变量属于对象,只能被该对象使用。类变量和实例变量的定义和访问方式也不同,定义时需要注意作用域。在使用时需要根据具体的需求来选择使用哪种变量。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签