¿Qué es el python classmethod()? Es un método incorporado “utilizado como decorador para definir un método de clase”. Los métodos de clase están vinculados a la clase y no a la instancia del objeto.
Como resultado, se pueden llamar en la propia clase o en cualquier instancia de la clase. El primer parámetro de un método de clase es una referencia a la clase en sí, que generalmente se denomina “cls”.
Ejemplo python classmethod()
class MainClass:
main_var = 10
@classmethod
def main_class_method(cls):
print("This is a class method.")
print("The value of main_var is:", cls.main_var)
# Call the class method on the class itself
MainClass.main_class_method()
# Create an instance of MainClass
main_instance = MainClass()
# Call the class method on the instance
main_instance.main_class_method()
Producción
This is a class method.
The value of main_var is: 10
This is a class method.
The value of main_var is: 10
En este código, el método main_class_method() se define como un método de clase usando el decorador @classmethod .
Puede llamar a este método en la propia clase (MainClass.main_class_method()) o en cualquier instancia de la clase (main_instance.main_class_method()).
La principal ventaja de los métodos de clase es que pueden ser anulados por subclases.
Esto permite que las subclases proporcionen una implementación diferente del método de clase sin dejar de poder llamar al método de clase original si es necesario.