ironfroggy wrote:
> Hoping this isn't seeming too confusing, but I need to create a
> metaclass and a class using that metaclass, such that one of the bases
> of the metaclass is the class created with that metaclass. I can't
> figure out a way to do this, even after trying to add the class as a
> base after the classes have been created.
> 
> Is there some way I can get this to work properly?
> 
What do you have, and how doesn't it work?

I get:

  >>> class meta(type): pass
  ...
  >>> class cls(object):
  ...     __metaclass__ = meta
  ...     def __repr__(cls):
  ...         return "I'm %s, an instance of %s" % (cls.__name__, type(cls))
  ...
  >>> meta.__bases__ = (cls,)+meta.__bases__
  >>> cls
  I'm cls, an instance of <class 'meta'>
  >>> assert type(cls) in cls.__subclasses__()
  >>>

Of course, re-assigning meta.__bases__ comes too late to affect the 
construction 
sequence of cls.

Michael

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to