Абстрактні класи та шаблони
Свайпніть щоб показати меню
Абстрактні базові класи (ABC) — це потужний інструмент у Python для проєктування гнучких і надійних об'єктно-орієнтованих систем. Вони допомагають створювати зручний для супроводу код, визначаючи чіткі контракти, яких повинні дотримуватися підкласи.
123456789101112131415161718192021222324from 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 — це абстрактний базовий клас. Він визначає обов'язковий метод pay, який має бути реалізований у кожному типі оплати. CreditCard і PayPal — це конкретні підкласи. Вони надають власні версії методу pay, але дотримуються одного інтерфейсу.
Функція process_payment працює з будь-яким способом оплати, оскільки спирається на спільний абстрактний контракт, а не на конкретні класи.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат