60、类方法

小白量化 2025-12-16 15:17:40 29 举报

1、含义
使用@classmethod修饰的方法。类方法至少接收一个参数,这个参数按照惯例被命名为cls,代表类本身。使得类方法能够执行与类本身紧密相关的操作,而不需要类的实例
2、语法格式

# 语法格式
@classmethod
def 方法名(cls, 形参):
    方法体


# 示例
class Person:
   age = 18        # 类属性

   # 定义方法,修改类属性
   def set_age(self, age):    # 实例方法:带有self参数,代表对象本身
       # self.age = age            # 实例属性:仅作用于当前对象
       Person.age = age
       # 弊端:
       # (1)需要通过对象调用
       # (2)方法内部没有使用到对象
       # (3)方法中有引用到类,一旦类名更改,引用类的位置也需相应更改,不利于代码的可维护性

   # 定义类方法
   @classmethod
   def set_age2(cls, age):    # 类方法:带有cls参数,代表类本身
       print("cls:", cls)
       cls.age = age


# 类方法可以通过类调用,也可以通过对象调用
Person.set_age2(20)
print("Person:", Person)

person = Person()
person.set_age(20)
print(Person.age)

person.set_age2(28)
print(Person.age)

注意:Python中将代表类本身的参数命名为cls是一种广泛遵循的约定,这样做有助于提高代码的可读性和一致性。然而,这并不是Python语言的硬性要求,开发人员可以根据需要选择其他名称来替代cls,但这样做不推荐,因为这会降低代码的可读性、可维护性和可扩展性。

3、应用场景
类方法一般和类属性配合使用,当方法中需要使用到类(如使用类属性、调用其他类方法或实例化对象)时,可以考虑将该方法定义为类方法。

量化小白,从0开始学量化! 1

著作权归文章作者所有。 未经作者允许禁止转载!

最新回复 ( 0 )
发新帖
0
DEPRECATED: addslashes(): Passing null to parameter #1 ($string) of type string is deprecated (/data/user/htdocs/xiunophp/xiunophp.min.php:48)