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