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 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|