n | class Ins: | n | class SizeDescriptor: |
| | | |
| def __init__(self): | | def __init__(self): |
n | self._size = None | n | self._values = None |
| | | |
| def __get__(self, instance, owner): | | def __get__(self, instance, owner): |
| if instance is None: | | if instance is None: |
| return self | | return self |
n | if self._size is not None: | n | if self._values is not None: |
| return self._size | | return self._values |
| if hasattr(instance, '__len__'): | | if hasattr(instance, '__len__'): |
| return len(instance) | | return len(instance) |
n | elif hasattr(instance, '__abs__'): | n | if hasattr(instance, '__abs__'): |
| return abs(instance) | | return abs(instance) |
n | else: | n | |
| return 0 | | return 0 |
| | | |
| def __set__(self, instance, value): | | def __set__(self, instance, value): |
n | self._size = value | n | self._values = value |
| | | |
| def __delete__(self, instance): | | def __delete__(self, instance): |
n | self._size = None | n | self._values = None |
| | | |
| def sizer(cls): | | def sizer(cls): |
t | cls.size = Ins() | t | cls.size = SizeDescriptor() |
| return cls | | return cls |