Python classmethod() 内置函数
来自 Python 3 文档
将一个方法转换为一个类方法。类方法接收类作为隐式的第一个参数,就像实例方法接收实例一样。
简介
classmethod 是一个绑定到类而不是类实例的方法。它将类本身作为其第一个参数,通常命名为 cls。这与接收实例作为第一个参数(self)的常规实例方法形成对比。
它们通常用于以特定方式创建类实例的工厂方法。
示例
这是一个常见的用例:创建一个可以从不同数据格式(如字典)实例化类的工厂方法。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
@classmethod
def from_dict(cls, data):
# 这是一个工厂方法,从字典创建 Person 实例
return cls(data['name'], data['age'])
def display(self):
print(f"Name: {self.name}, Age: {self.age}")
# 新人员的数据
person_data = {'name': 'John', 'age': 30}
# 使用类方法创建 Person 实例
p = Person.from_dict(person_data)
p.display()
Name: John, Age: 30