Михаил Авраменко, 441 группа ClassCounter 10188
action22k ClassCounter 10023
t1class Generative(type):t1class Generative(type):
2    _creation_index = 02    _creation_index = 0
33
4    class OrderTracker:4    class OrderTracker:
55
6        def __get__(self, obj, owner):6        def __get__(self, obj, owner):
7            return Generative._creation_index7            return Generative._creation_index
88
9    def __new__(mcls, class_name, bases_tuple, namespace_dict):9    def __new__(mcls, class_name, bases_tuple, namespace_dict):
10        namespace_dict['generation'] = Generative.OrderTracker()10        namespace_dict['generation'] = Generative.OrderTracker()
11        cls = super().__new__(mcls, class_name, bases_tuple, namespace_d11        cls = super().__new__(mcls, class_name, bases_tuple, namespace_d
>ict)>ict)
12        Generative._creation_index += 112        Generative._creation_index += 1
13        return cls13        return cls
1414
15    def __setattr__(cls, attrib_name, value):15    def __setattr__(cls, attrib_name, value):
16        if attrib_name == 'generation':16        if attrib_name == 'generation':
17            raise AttributeError('generation is a constant, read-only pr17            raise AttributeError('generation is a constant, read-only pr
>operty')>operty')
18        super().__setattr__(attrib_name, value)18        super().__setattr__(attrib_name, value)
1919
20    def __delattr__(cls, attrib_name):20    def __delattr__(cls, attrib_name):
21        if attrib_name == 'generation':21        if attrib_name == 'generation':
22            raise AttributeError('cannot destroy the generation attribut22            raise AttributeError('cannot destroy the generation attribut
>e')>e')
23        super().__delattr__(attrib_name)23        super().__delattr__(attrib_name)
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op