UniSize/Egor_Feklisov
UniSize/ogoldobina
nn1 
1def sizer(obj):2def sizer(cls):
2    def size_getter(self):3    def get_size(self):
3        if hasattr(self, '__len__'):4        if hasattr(self, '__len__'):
n4            return self.__len__()n5            return len(self)
5 
6        if hasattr(self, '__abs__'):6        if hasattr(self, '__abs__'):
n7            return self.__abs__()n7            return abs(self)
8        return 08        return 0
99
n10    obj.size = property(fget=size_getter)n10    cls.size = property(get_size)
11    return obj11    return cls
1212
t13 t
14# if __name__ == "__main__":
15#     @sizer
16#     class S(str):
17#         pass
18 
19#     @sizer
20#     class N(complex):
21#         pass
22 
23#     @sizer
24#     class E(Exception):
25#         pass
26 
27#     for obj in S("QWER"), N(3+4j), E("Exceptions know no lengths!"):
28#         print(obj, obj.size)
29 
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op