Los decoradores se originaron en el patrón de decorador en mi humilde opinión. Lo que dice, una pieza de código utilizada para decorar algún otro código. Para mostrarle la necesidad, solo vea este ejemplo:
@assert_file_extension
def import_file_content (nombre_archivo):
# Aquí puede asumir que ya recibió una extensión de archivo válida.
# y proceder a procesarlo.
Como puede ver, ‘afirmar_extensión_archivo` es el decorador aquí. Si no está allí, así es como se vería el código:
- ¿Cuáles son algunas buenas fuentes o libros para el diseño y la arquitectura del sistema?
- ¿Cuáles son algunas ideas de aplicaciones simples, mínimas y de una página?
- ¿Qué pasos debo seguir antes de aprender React.js?
- ¿Cuáles son los beneficios y las desventajas del desarrollo de software basado en la integración continua?
- ¿Cuáles son algunos consejos importantes para detectar / cubrir casos extremos al codificar soluciones?
def import_file_content (nombre_archivo):
si validar (nombre_archivo):
# procesalo
más:
# generar un error.
Como puede ver desde arriba, el código anterior se ve feo en comparación con el primer enfoque. Por la misma razón, los decoradores serían útiles. Extrayendo funcionalidad innecesaria del bloque de código real y moviéndolo afuera.
Llegando a la parte `@ classmethod`, se usa cuando tienes un método que no necesita un objeto para instanciarse para llamarlo. Por que lo necesitarias ?
A veces, aunque todos sus métodos están bajo una clase, y uno de esos métodos no usa ‘self’ en absoluto.
Clase Persona (objeto):
def introduce_myself (self):
imprima el formato ‘Hola, soy {}’. (self.name)@classmethod
def say_hello (cls):
imprimir “¡Hola!”