Абстрактні класи та шаблони
Свайпніть щоб показати меню
Абстрактні базові класи (ABCs) — це потужний інструмент у 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 працює з будь-яким методом оплати, оскільки вона спирається на спільний абстрактний контракт, а не на конкретні класи.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Абстрактні класи та шаблони
Абстрактні базові класи (ABCs) — це потужний інструмент у 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 працює з будь-яким методом оплати, оскільки вона спирається на спільний абстрактний контракт, а не на конкретні класи.
Дякуємо за ваш відгук!