On Fri, 03 Aug 2012 13:48:08 -0700, Tobiah wrote:

> I have a bunch of classes from another library (the html helpers
> from web2py).  There are certain methods that I'd like to add to
> every one of them.  So I'd like to put those methods in a class,
> and pass the parent at the time of instantiation.  Web2py has
> a FORM class for instance.  I'd like to go:
> 
>       my_element = html_factory(FORM)
> 
> Then my_element would be an instance of my class, and also
> a child of FORM.

You can use type() to create classes dynamically. E.g.:

        class my_base_class(object):
            # extra methods

        subclasses = {}

        def html_factory(cls, *args, **kwargs):
            name = "my_" + cls.__name__
            if name not in subclasses:
                subclasses[name] = type(name, (cls, my_base_class), {})
            return subclasses[name](*args, **kwargs)

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

Reply via email to