Advertisement
KNenov96

Untitled

Feb 11th, 2023
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.06 KB | None | 0 0
  1. # Not working code
  2.  
  3. class Car(ABC):
  4.  
  5.     @abstractmethod
  6.     def __init__(self, model: str, speed_limit: int):
  7.         self.model = model
  8.         self.speed_limit = speed_limit
  9.         self.min_speed_limit = 0
  10.         self.max_speed_limit = 0
  11.         self.is_taken = False
  12.  
  13.     @property
  14.     def model(self):
  15.         return self.__model
  16.  
  17.     @model.setter
  18.     def model(self, value):
  19.         if len(value) < 4:
  20.             raise ValueError(f"Model {value} is less than 4 symbols!")
  21.         self.__model = value
  22.  
  23.     @property
  24.     def speed_limit(self):
  25.         return self.__speed_limit
  26.  
  27.     @speed_limit.setter
  28.     def speed_limit(self, value):
  29.         if self.min_speed_limit > value or self.max_speed_limit < value:
  30.             raise ValueError(f"Invalid speed limit! Must be between {self.min_speed_limit} and {self.max_speed_limit}!")
  31.         self.__speed_limit = value
  32.  
  33.  
  34. class MuscleCar(Car):
  35.     def __init__(self, model, speed_limit):
  36.         self.min_speed_limit = 250
  37.         self.max_speed_limit = 450
  38.         super().__init__(model, speed_limit)
  39.  
  40.  
  41.  
  42.  
  43. ## working code
  44.  
  45. class Car(ABC):
  46.     MIN_SPEED = 0
  47.     MAX_SPEED = 0
  48.  
  49.     @abstractmethod
  50.     def __init__(self, model: str, speed_limit: int):
  51.         self.model = model
  52.         self.speed_limit = speed_limit
  53.         self.is_taken = False
  54.  
  55.     @property
  56.     def model(self):
  57.         return self.__model
  58.  
  59.     @model.setter
  60.     def model(self, value):
  61.         if len(value) < 4:
  62.             raise ValueError(f"Model {value} is less than 4 symbols!")
  63.         self.__model = value
  64.  
  65.     @property
  66.     def speed_limit(self):
  67.         return self.__speed_limit
  68.  
  69.     @speed_limit.setter
  70.     def speed_limit(self, value):
  71.         if self.MIN_SPEED > value or self.MAX_SPEED < value:
  72.             raise ValueError(f"Invalid speed limit! Must be between {self.MIN_SPEED} and {self.MAX_SPEED}!")
  73.         self.__speed_limit = value
  74.  
  75.  
  76. class MuscleCar(Car):
  77.     MIN_SPEED = 250
  78.     MAX_SPEED = 450
  79.  
  80.     def __init__(self, model, speed_limit):
  81.         super().__init__(model, speed_limit)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement