| f | def sizer(cls): | f | def sizer(cls): | 
            |  |  |  |  | 
            | n | def get_size(self): | n | def gs(self): | 
            |  | if hasattr(self, '_size'): |  | if hasattr(self, '_size'): | 
            |  | return self._size |  | return self._size | 
            |  | else: |  | else: | 
            |  | try: |  | try: | 
            |  | return len(self) |  | return len(self) | 
            |  | except TypeError: |  | except TypeError: | 
            |  | try: |  | try: | 
            |  | return abs(self) |  | return abs(self) | 
            |  | except TypeError: |  | except TypeError: | 
            |  | return 0 |  | return 0 | 
            |  |  |  |  | 
            | n | def set_size(self, value): | n | def ss(self, value): | 
            |  | self._size = value |  | self._size = value | 
            |  |  |  |  | 
            | n | def del_size(self): | n | def ds(self): | 
            |  | if hasattr(self, '_size'): |  | if hasattr(self, '_size'): | 
            |  | del self._size |  | del self._size | 
            | t | setattr(cls, 'size', property(get_size, set_size, del_size)) | t | setattr(cls, 'size', property(gs, ss, ds)) | 
            |  | return cls |  | return cls |