- 1

Fundamentos de Programación con Python para Principiantes
02:04 - 2

Instalación y Uso Básico de Python en Windows y Mac
08:10 - 3

Semántica y Sintaxis en Programación Python
10:15 - 4
Práctica: Te doy la bienvenida a los ejercicios interactivos
00:00 - 5

Manejo de Cadenas y Operaciones Básicas en Python
13:06 - 6

Tipos de Datos en Python: Enteros, Flotantes y Booleanos
07:22 - 7
Dominio de la función `print` en Python: usos y formatos avanzados
04:00 - 8

Operaciones matemáticas avanzadas en Python: módulo, potencia y más
11:01 - 9

Entrada de información y manejo de tipos de datos en Python
04:53
Decoradores en Programación Orientada a Objetos en Python
Clase 46 de 63 • Curso de Python
Contenido del curso
- 23

Programación Orientada a Objetos en Python: Clases y Métodos Básicos
14:11 - 24

Gestión de Biblioteca con Programación Orientada a Objetos
18:07 - 25

Herencia y Polimorfismo en Programación Orientada a Objetos
13:57 - 26

Programación Orientada a Objetos: Implementación de Clases y Herencia
13:10 - 27

Polimorfismo en Programación Orientada a Objetos
06:21 - 28

Herencia y Uso de la Función super() en Python
07:28 - 29
Programación Orientada a Objetos: Atributos, Métodos y `super()` en Python
05:06
- 37
Programación Avanzada en Python: POO, Excepciones y Proyectos
01:45 - 38

Escritura de Código Pytónico y Buenas Prácticas en Python
03:58 - 39

Comentarios y Docstrings: Buenas Prácticas en Programación
07:01 - 40

Tiempo de vida y alcance de variables en Python
14:11 - 41

Anotaciones de Tipo en Python para Código Más Legible
13:12 - 42

Validación de Tipos y Manejo de Excepciones en Python
13:05 - 43

Estructuras de Datos Avanzadas en Python: Collection y Enumeraciones
13:15
- 47

Uso de Métodos Mágicos en Python
06:47 - 48
Sobrecarga de Operadores en Python: Personaliza Comportamiento de Clases
04:18 - 49

Ejecutar scripts Python con `if __name__ == '__main__'`
05:42 - 50

Metaprogramación en Python: Métodos `__new__` y `__init__`
03:59 - 51

Uso de *args y **kwargs en funciones de Python
14:32 - 52

Métodos y Atributos Privados y Protegidos en Python
09:26 - 53

Uso de Property en Python: Getter, Setter y Eliminación de Atributos
07:56 - 54

Métodos estáticos y de clase en Python
07:46
¿Cómo funcionan los decoradores en la programación orientada a objetos?
Los decoradores en Python son un elemento poderoso que añade funcionalidad adicional a métodos o funciones sin modificar su estructura interna. Este concepto es bien conocido en el contexto de funciones, pero su aplicación en la programación orientada a objetos (POO) expande aún más sus posibilidades. Aquí exploramos su uso dentro de clases.
¿Qué es un método estático?
Los métodos estáticos no dependen de la instancia de la clase sino que pertenecen a la clase en sí. Se utiliza el decorador @staticmethod cuando se desea crear un método que no necesita acceder a la clase o modificar sus datos.
class Calculadora:
@staticmethod
def suma(a: int, b: int) -> int:
return a + b
- Ventaja: Ideal para operaciones que no requieren acceso a las propiedades o métodos de clase.
¿Qué hace un método de clase?
Un método de clase está vinculado a la clase y no a la instancia. Utiliza el decorador @classmethod, y el primer parámetro siempre es cls, que representa la clase.
class Contador:
cuenta = 0
@classmethod
def incrementar(cls):
cls.cuenta += 1
- Uso común: Modificar el estado de clase común a todas las instancias.
¿Cómo se utiliza el decorador property?
El decorador property permite acceder a un método como si fuese un atributo. Esto mejora la encapsulación y mantiene el control sobre cómo se manipula la información interna de la clase.
Ejemplo de clase Círculo
class Circulo:
def __init__(self, radio: float):
self._radio = radio
@property
def area(self) -> float:
return 3.1416 * self._radio ** 2
@property
def radio(self) -> float:
return self._radio
@radio.setter
def radio(self, valor: float):
if valor < 0:
raise ValueError("El radio no puede ser negativo")
self._radio = valor
¿Por qué usar property?
-
Control del acceso: El acceso a atributos sensibles puede ser controlado sin afectar la interfaz externa.
-
Flexibilidad: Los atributos pueden ser modificables, lo que permite agregar lógica para validaciones o cálculos al cambiar valores.
-
Encapsulación: Permite ocultar la lógica de cálculo o validaciones, entregando una interfaz limpia al usuario de la clase.
Reflexiones finales sobre decoradores en POO
Los decoradores como staticmethod, classmethod, y property son herramientas valiosas que enriquecen el diseño de clases en Python. Permiten:
- Añadir funcionalidad especial sin modificar el código base.
- Mejorar la legibilidad y profesionalidad del código.
- Mantener un diseño orientado a objetos disciplinado y eficiente.
¡Ahora depende de ti aplicarlos y descubrir todo su potencial en tus proyectos! Recuerda: ¡Un gran poder conlleva una gran responsabilidad en el código!