Дю Василий Андреевич КФ МГУ ClassCounter 10038
Подлужный Олег 304 КФ ClassCounter 9454
n1class _GenAccessor:n1class GenerationDescriptor:
22
n3    def __get__(self, inst, owner):n3    def __get__(self, instance, owner):
4        return owner.__class__._counter4        return type(owner)._count
55
6class Generative(type):6class Generative(type):
n7    _counter = 0n7    _count = 0
88
n9    def __init__(self, nm, bases, ns):n9    def __init__(cls, name, bases, namespace):
10        super().__init__(nm, bases, ns)10        super().__init__(name, bases, namespace)
11        type(self)._counter += 111        type(cls)._count += 1
12        type.__setattr__(self, 'generation', _GenAccessor())12        type.__setattr__(cls, 'generation', GenerationDescriptor())
1313
n14    def __setattr__(self, key, val):n14    def __setattr__(self, name, value):
15        if key == 'generation':15        if name == 'generation':
16            raise AttributeError('cannot modify generation')16            raise AttributeError('cannot set generation')
17        return super().__setattr__(key, val)17        super().__setattr__(name, value)
1818
n19    def __delattr__(self, key):n19    def __delattr__(self, name):
20        if key == 'generation':20        if name == 'generation':
21            raise AttributeError('cannot delete generation')21            raise AttributeError('cannot delete generation')
t22        return super().__delattr__(key)t22        super().__delattr__(name)
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op