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