def __init__(self,*args,**kwargs): printframe() self.wrapped=cls(*args,**kwargs)
def wrapper(*args,**kwargs): printframe() return fun(*args,**kwargs)
def __getattr__(self,name): printframe() return getattr(self.wrapped,name)
def wrapper(*args,**kwargs): print(header) printframe() print(footer) return func(*args,**kwargs)