Python类方法@classmethod()的具体使用
作者:酆訫鎻嗳
@classmethod 是一个函数修饰符,它表示接下来的是一个类方法,而对于平常我们见到的则叫做实例方法,本文主要介绍了Python类方法@classmethod()的具体使用,具有一定的参考价值,感兴趣的可以了解一下
在python中类方法是一种特殊的方法,它与类本身相关联,而不是与类的实例对象相关联。
- 类方法的定义。
类方法使用@classmethod()来装饰,它的第一个参数通常被命名为cls,它指向类的本身,而不是类的实例。类方法可以通过类名或者类的实例来调用。
class MyClass: @classmethod def my_class_method(cls, arg1, arg2): # do something with cls, arg1, and arg2
- 类方法的用途。
- 在实例之前做的操作。
- 在类的所有实例之间共享某些属性和方法。
- 提供一种替代构造函数的方式。
class MyClass: count = 0 def __init__(self): MyClass.count += 1 @classmethod def get_count(cls): return cls.count a = MyClass() b = MyClass() c = MyClass() print(MyClass.get_count()) # 输出 3
提供一种替代构造函数的方式
class Person: def __init__(self, name, age): self.name = name self.age = age @classmethod def from_birth_year(cls, name, birth_year): age = datetime.date.today().year - birth_year return cls(name, age) person = Person.from_birth_year('Alice', 1990) print(person.name) # 输出 'Alice' print(person.age) # 输出 33
在这个示例中,我们定义了一个名为from_birth_year的类方法。它接受一个名字和出生年份作为参数,并返回一个Person实例。使用类方法,我们可以提供一种替代构造函数的方式。
用类调用类方法,得到的结果是一个类实例。
到此这篇关于Python类方法@classmethod()的具体使用的文章就介绍到这了,更多相关Python @classmethod内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!