Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from abc import ABC, abstractmethod
- class Musician(ABC):
- def __init__(self, name: str, age: int):
- self.name = name
- self.age = age
- self.skills = []
- @property
- def name(self):
- return self.__name
- @name.setter
- def name(self, value):
- if value.strip() == "":
- raise ValueError("Musician name cannot be empty!")
- self.__name = value
- @property
- def age(self):
- return self.__age
- @age.setter
- def age(self, value):
- if value < 16:
- raise ValueError("Musicians should be at least 16 years old!")
- self.__age = value
- @abstractmethod
- def learn_new_skill(self, new_skill: str, skill_list):
- if new_skill not in skill_list:
- raise ValueError(f"{new_skill} is not a needed skill!")
- if new_skill in skill_list:
- raise Exception(f"{new_skill} is already learned!")
- return f"{self.name} learned to {new_skill}."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement