Can you explain what are you trying to do?
If you want to acess submodules you can just call  instance.module.whatver so you can still acess to the objects
This feels
return getattr(self.module, name)

like a by-pass not to have to call instance.module.whatever but directly instance.whatever
I understand it’s more confortable but problematic.