Función incorporada classmethod() de Python

De la documentación de Python 3

Transforma un método en un método de clase. Un método de clase recibe la clase como argumento implícito primero, al igual que un método de instancia recibe la instancia.

Introducción

Un classmethod es un método que está vinculado a la clase y no a la instancia de la clase. Toma la clase misma como su primer argumento, convencionalmente llamado cls. Esto contrasta con un método de instancia regular, que toma la instancia como su primer argumento (self).

A menudo se utilizan para métodos de fábrica que crean instancias de la clase de una manera específica.

Ejemplo

Aquí hay un caso de uso común: crear un método de fábrica que pueda instanciar la clase a partir de un formato de datos diferente, como un diccionario.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    @classmethod
    def from_dict(cls, data):
        # Este es un método de fábrica que crea una instancia de Person a partir de un diccionario
        return cls(data['name'], data['age'])

    def display(self):
        print(f"Name: {self.name}, Age: {self.age}")

# Datos para una nueva persona
person_data = {'name': 'John', 'age': 30}

# Crear una instancia de Person usando el método de clase
p = Person.from_dict(person_data)

p.display()
Name: John, Age: 30

Enlaces relevantes

Morty Proxy This is a proxified and sanitized view of the page, visit original site.