| n | class Desc: | n | class Descr: | 
            |  |  |  |  | 
            |  | def __get__(self, obj, cls): |  | def __get__(self, obj, cls): | 
            | n | if hasattr(obj, '_value'): | n | if hasattr(obj, '_size'): | 
            |  | return obj._value |  | return obj._size | 
            |  | elif hasattr(obj, '__len__'): |  | if hasattr(obj, '__len__'): | 
            |  | return len(obj) |  | return len(obj) | 
            | n | elif hasattr(obj, '__abs__'): | n | if hasattr(obj, '__abs__'): | 
            |  | return abs(obj) |  | return abs(obj) | 
            | n | else: | n |  | 
            |  | return 0 |  | return 0 | 
            |  |  |  |  | 
            |  | def __set__(self, obj, val): |  | def __set__(self, obj, val): | 
            | n | obj._value = val | n | obj._size = val | 
            |  |  |  |  | 
            |  | def __delete__(self, obj): |  | def __delete__(self, obj): | 
            | n | del obj._value | n | del obj._size | 
            |  |  |  |  | 
            |  | def sizer(cls): |  | def sizer(cls): | 
            | t | cls.size = Desc() | t | cls.size = Descr() | 
            |  | return cls |  | return cls |