All pastes #837843 Raw Edit

Anonymous

public text v1 · immutable
#837843 ·published 2007-12-29 23:11 UTC
rendered paste body
nicolas@sky ~/Tmp $ cat cm.py 
def bar(self):
    return 'foo'

class MetaClass(type):
    def __new__(cls, name, bases, attrs):
        if name == 'FirstClass':
            return super(MetaClass, cls).__new__(cls, name, bases, attrs)

        new_class = type.__new__(cls, name, bases, {})
        print 'Registered %s' % name
        new_class.foo()
        return new_class

class FirstClass(object):
    __metaclass__ = MetaClass

    def foo(cls):
        setattr(cls, 'bar', bar)
        print 'foo1 done'

    foo = classmethod(foo)

class SecondClass(FirstClass):
    def foo(cls):
        super(SecondClass, cls).foo()
        setattr(cls, 'baz', 'baz')
        print 'foo2 done'

    foo = classmethod(foo)
nicolas@sky ~/Tmp $ python cm.py 
Registered SecondClass
foo1 done