Advertisement
pacho_the_python

Untitled

Dec 19th, 2022
742
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.01 KB | None | 0 0
  1. from abc import ABC, abstractmethod
  2.  
  3.  
  4. class Musician(ABC):
  5.     def __init__(self, name: str, age: int):
  6.         self.name = name
  7.         self.age = age
  8.         self.skills = []
  9.  
  10.     @property
  11.     def name(self):
  12.         return self.__name
  13.  
  14.     @name.setter
  15.     def name(self, value):
  16.         if value.strip() == "":
  17.             raise ValueError("Musician name cannot be empty!")
  18.         self.__name = value
  19.  
  20.     @property
  21.     def age(self):
  22.         return self.__age
  23.  
  24.     @age.setter
  25.     def age(self, value):
  26.         if value < 16:
  27.             raise ValueError("Musicians should be at least 16 years old!")
  28.         self.__age = value
  29.  
  30.     @abstractmethod
  31.     def learn_new_skill(self, new_skill: str, skill_list):
  32.         if new_skill not in skill_list:
  33.             raise ValueError(f"{new_skill} is not a needed skill!")
  34.         if new_skill in skill_list:
  35.             raise Exception(f"{new_skill} is already learned!")
  36.         return f"{self.name} learned to {new_skill}."
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement