| UniSize/MaximKornilov | UniSize/akozlov | ||||
|---|---|---|---|---|---|
| f | 1 | def sizer(cls): | f | 1 | def sizer(cls): |
| 2 | 2 | ||||
| n | 3 | class getter: | n | 3 | class Descriptor: |
| 4 | 4 | ||||
| 5 | def __get__(self, obj, cls): | 5 | def __get__(self, obj, cls): | ||
| 6 | 6 | ||||
| 7 | if hasattr(obj, '__len__'): | 7 | if hasattr(obj, '__len__'): | ||
| 8 | return len(obj) | 8 | return len(obj) | ||
| n | 9 | n | |||
| 10 | if hasattr(obj, '__abs__'): | 9 | if hasattr(obj, '__abs__'): | ||
| 11 | return abs(obj) | 10 | return abs(obj) | ||
| 12 | 11 | ||||
| 13 | return 0 | 12 | return 0 | ||
| 14 | 13 | ||||
| n | 15 | class Sizer(cls): | n | 14 | cls.size = Descriptor() |
| 16 | 15 | ||||
| n | 17 | size = getter() | n | 16 | return cls |
| 18 | 17 | ||||
| t | 19 | return Sizer | t | ||
| 20 | |||||
| Legends | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
| |||||||||