Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Not working code
- class Car(ABC):
- @abstractmethod
- def __init__(self, model: str, speed_limit: int):
- self.model = model
- self.speed_limit = speed_limit
- self.min_speed_limit = 0
- self.max_speed_limit = 0
- self.is_taken = False
- @property
- def model(self):
- return self.__model
- @model.setter
- def model(self, value):
- if len(value) < 4:
- raise ValueError(f"Model {value} is less than 4 symbols!")
- self.__model = value
- @property
- def speed_limit(self):
- return self.__speed_limit
- @speed_limit.setter
- def speed_limit(self, value):
- if self.min_speed_limit > value or self.max_speed_limit < value:
- raise ValueError(f"Invalid speed limit! Must be between {self.min_speed_limit} and {self.max_speed_limit}!")
- self.__speed_limit = value
- class MuscleCar(Car):
- def __init__(self, model, speed_limit):
- self.min_speed_limit = 250
- self.max_speed_limit = 450
- super().__init__(model, speed_limit)
- ## working code
- class Car(ABC):
- MIN_SPEED = 0
- MAX_SPEED = 0
- @abstractmethod
- def __init__(self, model: str, speed_limit: int):
- self.model = model
- self.speed_limit = speed_limit
- self.is_taken = False
- @property
- def model(self):
- return self.__model
- @model.setter
- def model(self, value):
- if len(value) < 4:
- raise ValueError(f"Model {value} is less than 4 symbols!")
- self.__model = value
- @property
- def speed_limit(self):
- return self.__speed_limit
- @speed_limit.setter
- def speed_limit(self, value):
- if self.MIN_SPEED > value or self.MAX_SPEED < value:
- raise ValueError(f"Invalid speed limit! Must be between {self.MIN_SPEED} and {self.MAX_SPEED}!")
- self.__speed_limit = value
- class MuscleCar(Car):
- MIN_SPEED = 250
- MAX_SPEED = 450
- def __init__(self, model, speed_limit):
- super().__init__(model, speed_limit)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement