Pre-loader

/ K2 Cloud ERP for Python / Програмістам / Різні задачі Python-програмістів / Об’єктно-орієнтоване програмування (ООП) / Методи об’єктів та їх перевизначення сторонніми програмістами

Методи об’єктів та їх перевизначення сторонніми програмістами

Приклад використання методів у класах Python та можливість їхньої перевизначення (кастомізації) сторонніми програмістами. Розглянемо клас Car, який має методи start_engine, drive та stop_engine.

class Car:
    def __init__(self, make, model):
        self.make = make
        self.model = model
        self.engine_started = False

    def start_engine(self):
        if not self.engine_started:
            print("Двигун запущено.")
            self.engine_started = True
        else:
            print("Двигун вже запущено.")

    def drive(self):
        if self.engine_started:
            print("Автомобіль рухається.")
        else:
            print("Для того, щоб рухатися, спочатку потрібно запустити двигун.")

    def stop_engine(self):
        if self.engine_started:
            print("Двигун зупинено.")
            self.engine_started = False
        else:
            print("Двигун вже зупинено.")


# Сторонній програміст може успадковувати клас Car та перевизначати методи за необхідності

class CustomCar(Car):
    def start_engine(self):
        print("Спеціальний метод для запуску двигуна.")
        super().start_engine()  # Викликати батьківський метод

    def drive(self):
        print("Спеціальний метод для руху.")
        super().drive()

    def stop_engine(self):
        print("Спеціальний метод для зупинки двигуна.")
        super().stop_engine()


# Використання класу Car та CustomCar

car_instance = Car("Toyota", "Camry")
car_instance.start_engine()
car_instance.drive()
car_instance.stop_engine()

print("
")

custom_car_instance = CustomCar("Tesla", "Model S")
custom_car_instance.start_engine()  # Викликається перевизначений метод
custom_car_instance.drive()         # Викликається перевизначений метод
custom_car_instance.stop_engine()    # Викликається перевизначений метод

У цьому прикладі клас Car має методи для управління двигуном автомобіля. Сторонній програміст може успадковувати клас Car та перевизначати методи, щоб додати свій власний функціонал або змінити поведінку.

Спеціальний клас CustomCar успадковує Car та перевизначає всі його методи. При виклику цих методів для об'єкту типу CustomCar, викликаються перевизначені методи з власним функціоналом. Такий підхід дозволяє легко розширювати та модифікувати функціонал класів для конкретних потреб.

Автор: Рудюк С.А. 2023. K2 Cloud ERP.