在Python中,cls
是一个用于指代类本身的约定性名称,通常用作类方法(class method)中的第一个参数。cls
类似于 self
,它是对类的引用,而不是对实例的引用。cls
通常在类方法中用于访问类级别的属性和方法。举个例子如下所示:
class MyClass:
class_variable = "I am a class variable"
def __init__(self, instance_variable):
self.instance_variable = instance_variable
def instance_method(self):
print("Instance method called")
@classmethod
def class_method(cls):
print(f"Class method called. Class variable: {cls.class_variable}")
# 创建类的实例
obj = MyClass("I am an instance variable")
# 调用实例方法
obj.instance_method()
# 调用类方法
MyClass.class_method()
输出结果,如下所示:
Instance method called
Class method called. Class variable: I am a class variable
在这个例子中:
class_method
是一个类方法,它使用cls
作为第一个参数。这使得在方法中可以访问类的属性,如cls.class_variable
。class_variable
是一个类变量,它属于类而不是实例。这意味着无论创建了多少个类的实例,它们都共享相同的class_variable
。- 在
class_method
中,cls.class_variable
表示访问类方法所属的类的class_variable
。这个类方法可以在不创建类实例的情况下调用,并且能够访问和操作类级别的属性。
所以,cls.class_variable
指的是通过类方法访问的类变量 class_variable
。在这个例子中,当你调用 MyClass.class_method()
时,它会打印出 "Class method called. Class variable: I am a class variable",显示了通过 cls.class_variable
获取的类变量的值。
需要注意的是,类方法可以通过类本身调用,也可以通过类的实例调用。在这两种情况下,cls
都将引用到相应的类。