fork download
  1. class Meta(type):
  2. def __new__(cls, name, bases, attrs, **kwargs):
  3. attrs['x'] = 0
  4. ref = super().__new__(cls, name, bases, attrs)
  5. ref.__dict__ = dict(ref.__dict__)
  6. return ref
  7. @property
  8. def x(cls):
  9. return cls.__dict__['x']
  10.  
  11. class Class(metaclass=Meta):
  12. def __init__(self):
  13. self.id = __class__.x
  14. __class__.__dict__['x'] += 1
  15.  
  16. i = Class()
  17. j = Class()
  18. k = Class()
Runtime error #stdin #stdout #stderr 0.01s 28384KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Traceback (most recent call last):
  File "./prog.py", line 14, in <module>
  File "./prog.py", line 12, in __init__
TypeError: 'mappingproxy' object does not support item assignment