import re   class Ray(object):     def __init__(self, position, direction):         self.position = position         self.direction = direction       def __getattr__(self, name):         pat = re.compile('^(\w+)_is_zero$')         if pat.match(name):             prop = pat.findall(name)[0]             if prop == 'position':                 return self.position[0] == 0 and self.position[1] == 0             elif prop == 'direction':                 return self.direction[0] == 0 and self.direction[1] == 0           raise AttributeError   ray = Ray([0, 0], [1, 1]) print ray.position print ray.direction print ray.position_is_zero print ray.direction_is_zero