Хайруллина Алина ClassCounter 9811
action22k ClassCounter 10023
f1class Generative(type):f1class Generative(type):
n2    _count = 0n2    _creation_index = 0
33
n4    class GenerationDescriptor:n4    class OrderTracker:
55
6        def __get__(self, obj, owner):6        def __get__(self, obj, owner):
n7            return Generative._countn7            return Generative._creation_index
88
n9    def __new__(mcls, name, bases, ns):n9    def __new__(mcls, class_name, bases_tuple, namespace_dict):
10        ns['generation'] = Generative.GenerationDescriptor()10        namespace_dict['generation'] = Generative.OrderTracker()
11        cls = super().__new__(mcls, name, bases, ns)11        cls = super().__new__(mcls, class_name, bases_tuple, namespace_d
 >ict)
12        Generative._count += 112        Generative._creation_index += 1
13        return cls13        return cls
1414
n15    def __setattr__(cls, name, value):n15    def __setattr__(cls, attrib_name, value):
16        if name == 'generation':16        if attrib_name == 'generation':
17            raise AttributeError('generation is read-only')17            raise AttributeError('generation is a constant, read-only pr
 >operty')
18        super().__setattr__(name, value)18        super().__setattr__(attrib_name, value)
1919
t20    def __delattr__(cls, name):t20    def __delattr__(cls, attrib_name):
21        if name == 'generation':21        if attrib_name == 'generation':
22            raise AttributeError('cannot delete generation')22            raise AttributeError('cannot destroy the generation attribut
 >e')
23        super().__delattr__(name)23        super().__delattr__(attrib_name)
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op