Gnarlodious <gnarlodi...@gmail.com> writes: > What I am doing is importing modules that have an identical instance > name.
Best to fix that, then. > import Grid That's a poorly-named module. PEP 8 recommends module names be all lowercase. > Grid has its instance: > > Grid.Grid() And this is the reason: PEP 8 recommends class names be named with TitleCase, so they're distinguishable from module names. So the above should be: import grid grid.Grid() > for page in self.allowedPages: > setattr(self, page, __import__(page)) For completeness, I'll note that the function name would be PEP 8 compatible as ‘allowed_pages’. > The problem is that the attribute name needs to reference the > Grid.Grid instance and not the Grid module. How would I do this? > I can do it literally: > setattr(self, 'Grid', Grid.Grid) Why do you shy away from this? You're already using ‘__import__’, and I don't know why that is since you already showed that you're importing the module explicitly anyway. -- \ “Don't be afraid of missing opportunities. Behind every failure | `\ is an opportunity somebody wishes they had missed.” —Jane | _o__) Wagner, via Lily Tomlin | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list