class Meta(type):
    def __new__(cls, name, bases, attrs, **kwargs):
        attrs['x'] = 0
        ref = super().__new__(cls, name, bases, attrs)
        ref.__dict__ = dict(ref.__dict__)
        return ref
    @property
    def x(cls):
        return cls.__dict__['x']

class Class(metaclass=Meta):
    def __init__(self):
        self.id = __class__.x
        __class__.__dict__['x'] += 1

i = Class()
j = Class()
k = Class()