if (key.startswith('__') or key in __all__) and key in globals():
    return globals()[key]
else:
    raise AttributeError("'module' object has no attribute '%s'" % key)

def __setattr__(self, key, value):
    globals()[key] = value
sys.modules[__name__] = StrictModule(__name__)
Как заставить «импорт x» возвращать подкласс типов.ModuleType?