action22k ClassCounter 10023
Долгих Данила ClassCounter 10063
f1class Generative(type):f1class Generative(type):
n2    _creation_index = 0n2    _count = 0
33
n4    class OrderTracker:n4    class Generation:
55
n6        def __get__(self, obj, owner):n6        def __get__(self, instance, owner):
7            return Generative._creation_index7            return Generative._count
88
n9    def __new__(mcls, class_name, bases_tuple, namespace_dict):n9    def __new__(mcls, name, bases, namespace):
10        namespace_dict['generation'] = Generative.OrderTracker()10        namespace['generation'] = Generative.Generation()
11        cls = super().__new__(mcls, class_name, bases_tuple, namespace_d11        cls = super().__new__(mcls, name, bases, namespace)
>ict) 
12        Generative._creation_index += 112        Generative._count += 1
13        return cls13        return cls
1414
n15    def __setattr__(cls, attrib_name, value):n15    def __setattr__(cls, name, value):
16        if attrib_name == 'generation':16        if name == 'generation':
17            raise AttributeError('generation is a constant, read-only pr17            raise AttributeError('generation is read-only')
>operty') 
18        super().__setattr__(attrib_name, value)18        super().__setattr__(name, value)
1919
t20    def __delattr__(cls, attrib_name):t20    def __delattr__(cls, name):
21        if attrib_name == 'generation':21        if name == 'generation':
22            raise AttributeError('cannot destroy the generation attribut22            raise AttributeError('cannot delete generation')
>e') 
23        super().__delattr__(attrib_name)23        super().__delattr__(name)
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op