[Tutor] Dynamic inheritance?

Jan Eden lists at janeden.org
Tue Nov 22 20:01:02 CET 2005


Hi,

Jan Eden wrote on 22.11.2005:

>Hi,
>
>Kent Johnson wrote on 20.11.2005:
>>
>>Use getattr() to access attributes by name. SiteA is an attribute
>>of Templates and Page is an attribute of SiteA so you can get use
>>getattr() twice to get what you want:
>>
>>site = getattr(Templates, self.site_name) self.template =
>>getattr(site, self.template_type)
>>
>
>Unfortunately, this does not seem to work if Templates is a package,
>not a module. Python complains:
>
>AttributeError: 'module' object has no attribute 'SiteA'
>      args = ("'module' object has no attribute 'SiteA'",)
>
>even though there is a module SiteA within package Templates. When
>manually importing SiteA from Templates, everything is good.
>
Found a solution:

import Templates
#...
def GetTemplates(self):
    __import__('Templates.', globals(), locals(), [self.identifier])
    site = getattr(Templates, self.identifier)
    self.template = getattr(site, self.template_type)

works.

Thanks,

Jan
-- 
He who would give up a little liberty in return for a little security deserves neither liberty nor security. - Benjamin Franklin


More information about the Tutor mailing list