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( )
Y2xhc3MgTWV0YSh0eXBlKToKICAgIGRlZiBfX25ld19fKGNscywgbmFtZSwgYmFzZXMsIGF0dHJzLCAqKmt3YXJncyk6CiAgICAgICAgYXR0cnNbJ3gnXSA9IDAKICAgICAgICByZWYgPSBzdXBlcigpLl9fbmV3X18oY2xzLCBuYW1lLCBiYXNlcywgYXR0cnMpCiAgICAgICAgcmVmLl9fZGljdF9fID0gZGljdChyZWYuX19kaWN0X18pCiAgICAgICAgcmV0dXJuIHJlZgogICAgQHByb3BlcnR5CiAgICBkZWYgeChjbHMpOgogICAgICAgIHJldHVybiBjbHMuX19kaWN0X19bJ3gnXQoKY2xhc3MgQ2xhc3MobWV0YWNsYXNzPU1ldGEpOgogICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgIHNlbGYuaWQgPSBfX2NsYXNzX18ueAogICAgICAgIF9fY2xhc3NfXy5fX2RpY3RfX1sneCddICs9IDEKCmkgPSBDbGFzcygpCmogPSBDbGFzcygpCmsgPSBDbGFzcygp