Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. import math
  2. import numbers
  3.  
  4. Colors = {"white":"#ffffff","black":"#000000","red":"#ff0000","blue":"#0000ff","green":"#00ff00","yellow":"#ffff00"}
  5.  
  6.  
  7.  
  8.  
  9. class LenghtDes:
  10. def __init__(self, init, name = "length"):
  11. self.val = init
  12. self.name = name
  13.  
  14. def __set__(self,instance,value):
  15. if not isinstance(value, numbers.Real):
  16. raise ValueError(f"{self.name} have to be greater than 0.")
  17. elif value < 0:
  18. raise TypeError(f"{self.name} have to be Real, {value} given.")
  19. self.val = value
  20.  
  21. def __get__(self,instnce,owner):
  22. return self.val
  23.  
  24. class ColorDes:
  25. def __init__(self,init = None, name = "color"):
  26. self.val = init
  27. self.name = name
  28.  
  29. def __get__(self,instance,owner):
  30. return self.val
  31.  
  32. def __set__(self,instance,value):
  33. if value not in Colors.keys():
  34. if str(value).lower() not in Colors.values():
  35. raise ValueError(f"{self.name} is not available, {value} given.")
  36. else:
  37. self.val = value
  38. else:
  39. self.val = Colors[value]
  40.  
  41. class Angle:
  42. def __init__(self,init,name="angle"):
  43. self.val = init
  44. self.name = name
  45. def __get__(self,instance,owner):
  46. return self.val
  47. def __set__(self,instance,value):
  48. if not isinstance(value, numbers.Real):
  49. raise TypeError(f"{self.name} expected to be real, {type(value)} given")
  50. elif not (0<=value < 2* math.pi):
  51. raise ValueError(f"{self.name} is expected to be in range 0-2*Pi, {value} given")
  52. self.val = value
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement