f | def sizer(cls): | f | def sizer(cls): |
| | | |
n | def gs(self): | n | def get_size(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 ss(self, value): | n | def set_size(self, value): |
| self._size = value | | self._size = value |
| | | |
n | def ds(self): | n | def del_size(self): |
| if hasattr(self, '_size'): | | if hasattr(self, '_size'): |
| del self._size | | del self._size |
t | setattr(cls, 'size', property(gs, ss, ds)) | t | setattr(cls, 'size', property(get_size, set_size, del_size)) |
| return cls | | return cls |