Advertisement
SomeBody_Aplle

Untitled

Jul 30th, 2023
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. class Color:
  2.  
  3. def __init__(self, color, name, opacity=1):
  4. if not self.__check_color(color):
  5. raise ValueError("Переданный цвет имеет неверный формат")
  6. self.__color = color
  7. self.name = name
  8. if not self.__opacity_check(opacity):
  9. raise ValueError("Переданная прозрачность имееет не верный формат")
  10. self.__opacity = opacity
  11.  
  12. @staticmethod
  13. def __check_color(color):
  14. if isinstance(color, tuple) and len(color) == 3:
  15. for value in color:
  16. if not isinstance(value, int) or value > 255 or value < 0:
  17. return False
  18. return True
  19. return False
  20.  
  21. def get_color(self):
  22. return self.__color
  23.  
  24. def set_color(self, new_color):
  25. if not self.__check_color(new_color):
  26. raise ValueError("Переданный цвет имеет неверный формат")
  27. self.__color = new_color
  28.  
  29. @staticmethod
  30. def __opacity_check(shade):
  31. if isinstance(shade, (float, int)):
  32. if 0 <= shade <= 1:
  33. return True
  34. return False
  35.  
  36. @property
  37. def opacity(self):
  38. return self.__opacity
  39.  
  40. @opacity.setter
  41. def opacity(self, new_shade):
  42. if not self.__opacity_check(new_shade):
  43. raise ValueError("Переданный прозрачность имеет неверный формат")
  44. self.__opacity = new_shade
  45.  
  46. # def get_opacity(self):
  47. # return self.__opacity
  48. #
  49. # def set_opacity(self, new_shade):
  50. # if not self.__opacity_check(new_shade):
  51. # raise ValueError("Переданный прозрачность имеет неверный формат")
  52. # self.__opacity = new_shade
  53. #
  54. # opacity = property(get_opacity, set_opacity)
  55.  
  56.  
  57. color_1 = Color((23, 23, 232), "Красный")
  58. print(color_1.name)
  59. print(color_1.opacity)
  60. color_1.opacity = 0.1
  61. print(color_1.opacity)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement