| UniSize/s02210059 | UniSize/akozlov | ||||
|---|---|---|---|---|---|
| f | 1 | def sizer(cls): | f | 1 | def sizer(cls): |
| n | 2 | class SizeGetter: | n | 2 | |
| 3 | class Descriptor: | ||||
| 4 | |||||
| 3 | def __get__(self, obj, objtype=None): | 5 | def __get__(self, obj, cls): | ||
| 4 | #print(obj, type(obj), dir(obj)) | 6 | |||
| 5 | if hasattr(obj, "__len__"): | 7 | if hasattr(obj, '__len__'): | ||
| 6 | return len(obj) | 8 | return len(obj) | ||
| n | 7 | elif hasattr(obj, "__abs__"): | n | 9 | if hasattr(obj, '__abs__'): |
| 8 | return abs(obj) | 10 | return abs(obj) | ||
| n | 9 | else: | n | ||
| 10 | return 0 | ||||
| 11 | 11 | ||||
| t | 12 | cls.size = SizeGetter() | t | 12 | return 0 |
| 13 | |||||
| 14 | cls.size = Descriptor() | ||||
| 15 | |||||
| 13 | return cls | 16 | return cls | ||
| 14 | 17 | ||||
| Legends | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
| |||||||||