def counting(cls):


    class MetaClass(getattr(cls, '__class__', type)):
        __counter = 0

def __new__(meta, name, bases, attrs):
    old_init = attrs.get('__init__')

def __init__(*args, **kwargs):
    MetaClass.__counter += 1
if old_init:
    return old_init(*args, **kwargs)

@classmethod
def get_counter(cls):
    return MetaClass.__counter
new_attrs = dict(attrs)
new_attrs.update({'__init__': __init__, 'get_counter': get_counter})
return super(MetaClass, meta).__new__(meta, name, bases, new_attrs)
return MetaClass(cls.__name__, cls.__bases__, cls.__dict__)


@counting
class Foo(object):
    pass


class Bar(Foo):
    pass
print(Foo.get_counter())
print(Foo().get_counter())
print(Bar.get_counter())
print(Bar().get_counter())
print(Foo.get_counter())
print(Foo().get_counter())
Мне нужен класс Python, который отслеживает, сколько раз он создается.