Приклад використання методів у класах 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.