Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- import numbers
- Colors = {"white":"#ffffff","black":"#000000","red":"#ff0000","blue":"#0000ff","green":"#00ff00","yellow":"#ffff00"}
- class LenghtDes:
- def __init__(self, init, name = "length"):
- self.val = init
- self.name = name
- def __set__(self,instance,value):
- if not isinstance(value, numbers.Real):
- raise ValueError(f"{self.name} have to be greater than 0.")
- elif value < 0:
- raise TypeError(f"{self.name} have to be Real, {value} given.")
- self.val = value
- def __get__(self,instnce,owner):
- return self.val
- class ColorDes:
- def __init__(self,init = None, name = "color"):
- self.val = init
- self.name = name
- def __get__(self,instance,owner):
- return self.val
- def __set__(self,instance,value):
- if value not in Colors.keys():
- if str(value).lower() not in Colors.values():
- raise ValueError(f"{self.name} is not available, {value} given.")
- else:
- self.val = value
- else:
- self.val = Colors[value]
- class Angle:
- def __init__(self,init,name="angle"):
- self.val = init
- self.name = name
- def __get__(self,instance,owner):
- return self.val
- def __set__(self,instance,value):
- if not isinstance(value, numbers.Real):
- raise TypeError(f"{self.name} expected to be real, {type(value)} given")
- elif not (0<=value < 2* math.pi):
- raise ValueError(f"{self.name} is expected to be in range 0-2*Pi, {value} given")
- self.val = value
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement