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