Closures in metaclasses
garrickp at gmail.com
Thu Jan 21 22:01:33 CET 2010
On Jan 21, 1:55 pm, Peter Otten <__pete... at web.de> wrote:
> Falcolas wrote:
> > I tried overriding __getattr__ and got an error at runtime (the
> You can either move __getattr__() into the metaclass or instantiate the
> class. I prefer the latter.
> Both approaches in one example:
> >>> class Tag:
> ... class __metaclass__(type):
> ... def __getattr__(self, name): return "<%s> via metaclass" %
> ... def __getattr__(self, name): return "<%s> via class" % name
> ...>>> Tag.yadda
> '<yadda> via metaclass'>>> tag = Tag()
> >>> tag.yadda
> '<yadda> via class'
Very nice, thanks!
More information about the Python-list