if __name__ == '__main__': from types import ModuleType dummy = ModuleType('dummy') for_dummy = Redefiner(vars(dummy)) dumb_msg = 'NOT dummy.Dub' Dumb = dumb_msg @for_dummy class Dumb(dict): def closure(fast_attr=Redefiner(vars())): dict_attr = dict.__getattribute__ @fast_attr def __missing__(self, key): try: return dict_attr(self, key) except AttributeError: raise KeyError(key) from None closure() assert Dumb is dumb_msg # assert 'Dumb' not in globals() d = dummy.Dumb() d.x = 'x' print(d['x'])