Decorador de método estático
Parte de la sección Programación orientada a objetos del Journey de Python de Coddy. Lección 11 de 64.
El decorador @staticmethod crea métodos que no necesitan self ni la clase. Funcionan como funciones normales, pero pertenecen a la clase.
Aquí tienes 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 == 0Llama 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
6Los métodos estáticos no acceden a los datos de instancia ni de clase:
class Calculator:
brand = "Python Calc"
def __init__(self, owner):
self.owner = owner
@staticmethod
def multiply(x, y):
# Aquí no hay self, así que self.owner no está disponible
return x * yPunto clave: Usa @staticmethod cuando necesites una función relacionada con la clase, pero que no necesite acceder a la instancia (self) ni a los datos de la clase. No hace falta un parámetro self.
Pruébalo tú mismo
Esta lección no incluye un desafío de código.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Programación orientada a objetos
1Fundamentos de la POO
Introducción a la POOArchivos externosClases vs. objetosEl parámetro selfMétodosAtributosMétodo constructor (__init__)Repaso: calculadora sencilla4Herencia
Herencia básicaLa función super()Sobrescritura de métodosHerencia múltipleOrden de resolución de métodosRepaso: jerarquía de empleados7Métodos especiales
Introducción a los métodos mágicosSobrecarga de operadoresMétodos mágicos de contenedoresRepaso: lista personalizada10Patrones de diseño, parte 1
Introducción a los patrones de diseñoPatrón SingletonPatrón FactoryPatrón ObserverPatrón Strategy2Decoradores
Introducción a los decoradoresDecorador de propiedadDecorador de método estáticoDecorador de método de clase5Polimorfismo
Repaso de la sobrescritura de métodosTipado patoClases y métodos abstractosDiseño de interfacesRepaso: calculadora de formas8Conceptos avanzados de POO
Composición frente a herenciaMixinsMétodos estáticos y de claseDecoradores de claseGestores de contexto11Patrones de diseño, parte 2
Patrón CommandPatrón AdapterPatrón DecoratorPatrón Template MethodPatrón StatePatrón Composite3Propiedades de clase
Variables de instancia vs. variables de claseDecoradores de propiedadesAtributos privadosRepaso: gestor de cuentas bancariasPractica por tu cuenta: Compilador de Python online