All pastes #825533 Raw Edit

Untitled

public text v1 · immutable
#825533 ·published 2007-12-20 17:28 UTC
rendered paste body
class Wrapper:
    def __init__(self,innerClass,**kw):
        self.obj = innerClass(**kw)
    def __getattr__(self,name):
        innerAttr = getattr(self.obj,name)
        if callable(innerAttr):
            print name
        return innerAttr

def MetaWrapper(innerClass):
    def f():
        return Wrapper(innerClass)
    return f
    #return lambda ): Wrapper(innerClass)

class A:
    def cucu(self):
        print 8

AA = MetaWrapper(A)

>>> a= A()
>>> a.cucu()
8
>>> aa= AA()
>>> aa.cucu()
cucu
8