Menu
Coddy logo textTech

Decorador de métodos estáticos

Parte de la sección Object Oriented Programming del Journey de Python de Coddy — lección 11 de 64.

El decorador @staticmethod crea métodos que no necesitan self o la clase. Funcionan como funciones regulares pero pertenecen a la clase.

Aquí hay un ejemplo de una clase con métodos estáticos:

class MathHelper:
    @staticmethod
    def add(a, b):
        return a + b
    
    @staticmethod
    def is_even(number):
        return number % 2 == 0

Llama a los métodos estáticos usando el nombre de la clase:

result = MathHelper.add(5, 3)
print(result)

check = MathHelper.is_even(10)
print(check)

También puedes llamarlos desde un objeto:

helper = MathHelper()
result2 = helper.add(2, 4)
print(result2)

Salida:

8
True
6

Los métodos estáticos no acceden a los datos de instancia o de clase:

class Calculator:
    brand = "Python Calc"
    
    def __init__(self, owner):
        self.owner = owner
    
    @staticmethod
    def multiply(x, y):
        # No se puede acceder a self.owner o Calculator.brand
        return x * y

Punto clave: Utiliza @staticmethod cuando necesites una función que esté relacionada con la clase pero que no necesite acceso a la instancia (self) o a los datos de la clase. No se requiere el parámetro self.

Hoja de referencia

El decorador @staticmethod crea métodos que no necesitan self ni la clase. Funcionan como funciones normales pero pertenecen a la clase.

class MathHelper:
    @staticmethod
    def add(a, b):
        return a + b
    
    @staticmethod
    def is_even(number):
        return number % 2 == 0

Llama a los métodos estáticos usando el nombre de la clase:

result = MathHelper.add(5, 3)
check = MathHelper.is_even(10)

También puedes llamarlos desde un objeto:

helper = MathHelper()
result2 = helper.add(2, 4)

Los métodos estáticos no acceden a los datos de la instancia o de la clase; no se necesita el parámetro self.

Pruébalo tú mismo

Esta lección no incluye un desafío de código.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Object Oriented Programming