| n | class _GenerationDescriptor: | n | class GenerationDescriptor: |
| | | |
| def __get__(self, obj, objtype=None): | | def __get__(self, obj, objtype=None): |
| n | return Generative._generation_count | n | return Generative._counter |
| | | |
| def __set__(self, obj, value): | | def __set__(self, obj, value): |
| raise AttributeError('Cannot set generation') | | raise AttributeError('Cannot set generation') |
| | | |
| def __delete__(self, obj): | | def __delete__(self, obj): |
| raise AttributeError('Cannot delete generation') | | raise AttributeError('Cannot delete generation') |
| | | |
| class Generative(type): | | class Generative(type): |
| n | _generation_count = 0 | n | _counter = 0 |
| generation = _GenerationDescriptor() | | generation = GenerationDescriptor() |
| | | |
| t | def __new__(mcs, name, bases, namespace, **kwargs): | t | def __new__(cls, name, bases, namespace): |
| mcs._generation_count += 1 | | Generative._counter += 1 |
| namespace['generation'] = _GenerationDescriptor() | | namespace['generation'] = GenerationDescriptor() |
| return super().__new__(mcs, name, bases, namespace) | | return super().__new__(cls, name, bases, namespace) |