Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Абстрактні класи та шаблони | Секція
Об'єктно-орієнтоване програмування на Python

bookАбстрактні класи та шаблони

Свайпніть щоб показати меню

Абстрактні базові класи (ABCs) — це потужний інструмент у Python для проєктування гнучких і надійних об'єктно-орієнтованих систем. Вони допомагають створювати зрозумілий і підтримуваний код, визначаючи чіткі контракти, яких повинні дотримуватися підкласи.

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))
copy

PaymentMethod — це абстрактний базовий клас. Він визначає обов'язковий метод pay, який має бути реалізований для кожного типу оплати. CreditCard і PayPal — це конкретні підкласи. Вони надають власні версії методу pay, але дотримуються одного інтерфейсу.

Note
Примітка

Функція process_payment працює з будь-яким методом оплати, оскільки вона спирається на спільний абстрактний контракт, а не на конкретні класи.

question mark

Яка ключова відмінність між абстрактним класом і конкретним класом?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 13

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 1. Розділ 13
some-alt