Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Clases Abstractas y Planos | Sección
Programación Orientada a Objetos en Python

Clases Abstractas y Planos

Desliza para mostrar el menú

Clases Base Abstractas (ABCs) como herramienta avanzada en Python para el diseño de sistemas orientados a objetos flexibles y robustos. Facilitan la creación de código mantenible mediante la definición de contratos claros que las subclases deben cumplir.

123456789101112131415161718192021222324
from abc import ABC, abstractmethod class PaymentMethod(ABC): @abstractmethod def pay(self, amount): pass class CreditCard(PaymentMethod): def pay(self, amount): return f"Paid {amount} using Credit Card" class PayPal(PaymentMethod): def pay(self, amount): return f"Paid {amount} using PayPal" def process_payment(method: PaymentMethod, amount): return method.pay(amount) print(process_payment(CreditCard(), 100)) print(process_payment(PayPal(), 250))

PaymentMethod como clase base abstracta. Define un método obligatorio, pay, que cada tipo de pago debe implementar. CreditCard y PayPal como subclases concretas. Proporcionan sus propias versiones del método pay, pero siguen la misma interfaz.

Note
Nota

La función process_payment funciona con cualquier método de pago porque se basa en el contrato abstracto compartido, no en clases específicas.

question mark

¿Cuál es la diferencia clave entre una clase abstracta y una clase concreta?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 13

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Clases Abstractas y Planos

Clases Base Abstractas (ABCs) como herramienta avanzada en Python para el diseño de sistemas orientados a objetos flexibles y robustos. Facilitan la creación de código mantenible mediante la definición de contratos claros que las subclases deben cumplir.

123456789101112131415161718192021222324
from abc import ABC, abstractmethod class PaymentMethod(ABC): @abstractmethod def pay(self, amount): pass class CreditCard(PaymentMethod): def pay(self, amount): return f"Paid {amount} using Credit Card" class PayPal(PaymentMethod): def pay(self, amount): return f"Paid {amount} using PayPal" def process_payment(method: PaymentMethod, amount): return method.pay(amount) print(process_payment(CreditCard(), 100)) print(process_payment(PayPal(), 250))

PaymentMethod como clase base abstracta. Define un método obligatorio, pay, que cada tipo de pago debe implementar. CreditCard y PayPal como subclases concretas. Proporcionan sus propias versiones del método pay, pero siguen la misma interfaz.

Note
Nota

La función process_payment funciona con cualquier método de pago porque se basa en el contrato abstracto compartido, no en clases específicas.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 13
some-alt