UniSize/ogoldobina
UniSize/Egor_Feklisov
nn1def sizer(obj):
2    def size_getter(self):
3        if hasattr(self, '__len__'):
4            return self.__len__()
15
n2def sizer(cls):n
3    def get_size(self):
4        if hasattr(self, '__len__'):
5            return len(self)
6        if hasattr(self, '__abs__'):6        if hasattr(self, '__abs__'):
n7            return abs(self)n7            return self.__abs__()
8        return 08        return 0
99
n10    cls.size = property(get_size)n10    obj.size = property(fget=size_getter)
11    return cls11    return obj
1212
tt13 
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