Создание иерархии классов для описания шин с декораторами для доступа к свойству давления
Black Seo Way
Тёмная сторона оптимизации
Дата публикации: 23.05.2025

Создание иерархии классов для описания шин с декораторами для доступа к свойству давления

8c44ba01

Содержимое статьи:

Базовый класс Tire

class Tire:
def __init__(self, manufacturer, size, season):
self._manufacturer = manufacturer
self._size = size
self._season = season
def fitting(self):
print(f"Монтаж шины {self._manufacturer} {self._size} {self._season}.")

Дочерние классы BikeTire и CarTire

class BikeTire(Tire):
def __init__(self, manufacturer, size, season):
super().__init__(manufacturer, size, season)
class CarTire(Tire):
def __init__(self, manufacturer, size, season):
super().__init__(manufacturer, size, season)

Декораторы для доступа к свойству давления

def validate_pressure(func):
def wrapper(self, value):
if isinstance(self, BikeTire):
if value < 2.3 or value > 3.4:
raise ValueError("Давление в шине велосипеда должно быть между 2.3 и 3.4 атмосферы.")
elif isinstance(self, CarTire):
if value < 1.5 or value > 3.5:
raise ValueError("Давление в шине автомобиля должно быть между 1.5 и 3.5 атмосферы.")
return func(self, value)
return wrapper
@validate_pressure
def inflate_tire(self, value):
self._pressure = value
print(f"Давление в шине {self._manufacturer} {self._size} составляет {self._pressure} атмосферы.")

Примеры работы

# Создание экземпляра велосипедной шины
bike_tire = BikeTire("Continental", "26x1.95", "летняя")
# Монтаж шины
bike_tire.fitting()
# Подкачка шины
bike_tire.inflate_tire(3.2)
# Создание экземпляра автомобильной шины
car_tire = CarTire("Michelin", "225/55 R17", "зимняя")
# Монтаж шины
car_tire.fitting()
# Подкачка шины
car_tire.inflate_tire(2.7)


Горящие туры в Румынию с перелетом
Инновационные методы 3D-печати в строительстве мостов
Инновационные методы управления лесосечкой на строительных площадках
Женская одежда с кружевом
Кадастровые работы в Самаре
Казань окна VEKA - надежное решение для дома
Лучший хостинг VDSina для онлайн-школ
Маркетинг в поиске: сочетание Google Ads и SEO для стабильного роста
Новостройки Оренбурга: выбор жилья для семьи
Онлайн генератор паролей для браузера
Пиломатериалы для фундамента
Случайный контакт
Vdsina вечный хостинг: идеальное решение для бизнеса
Видео рулетка онлайн бесплатно
Вконтакте: секреты от экспертов
Заказ воды в квартиру

Контакты

  • ICQ: 481121792
  • Skype: map-sarek
  • Mail: yadaseo@gmail.com
  • Лента в твиттере
  • Блоги, которые я читаю

    • Блог WiseCoder'а
    • Блог Altair-Z
    • Блог Хероманта
    • Teimos
    • DimaX
    • Rushter
    • Блог Илюхи
    • Maiami
    • Спрут в Тае
    • Капитан Арбайтен! :D

    Прочее



    Копиврайт © 2024 .. 2025 .. 2024
    Black Seo Way orskp.ru. Lets go!
    Наши ссылки