class Foo: pass class Bar: def __del__(self): print("bar.__del__") class Meta(type): def mro(cls): return (cls, Foo, object) def __setattr__(cls, name, value): setattr(Foo, name, value) proxy = Meta('FooProxy', (), {}) proxy.x = Bar() proxy.x # don't omit proxy.x = 0 print(proxy.x)