UniSize/skryzhanovskaya
UniSize/LagnoA
n1class Sizer:n1# Лагно Александра, группа 516
2 
3class Descriptor:
2    def __get__(self, obj, cls):4    def __get__(self, obj, cls):
n3        if '__len__' in dir(obj):n5        if "__len__" in dir(obj):
4            return len(obj)6            return len(obj)
n5        elif '__abs__' in dir(obj):n7        elif "__abs__" in dir(obj):
6            return abs(obj)8            return abs(obj)
7        else:9        else:
8            return 010            return 0
911
1012
n11def sizer(target):n13def sizer(cls):
12    target.size = Sizer()14    cls.size = Descriptor()
13    return target15    return cls
1416
tt17# @sizer
18# class S(str):
19# def __init__(self, stroka):
20##       self.field = 100500
21##
22# @sizer
23# class N(complex):
24# pass
25##
26# @sizer
27# class E(Exception):
28# pass
29##
30##s = S("QWER")
31##print(s.__dict__, S.__dict__)
32# for obj in S("QWER"), N(3+4j), E("Exceptions know no lengths!"):
33##    print(obj, obj.size)
34 
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op