def __getattribute__( self, name ):
        """
        Return a proxy wrapper object if this is a method call.
        """
        if name.startswith('_'):
            return object.__getattribute__(self, name)
        else:
            att = getattr(self._obj, name)
            if type(att) is types.MethodType:
                return ProxyMethodWrapper(self, att, name)
            else:
                return att

        Return a proxy wrapper object if this is a method call.
        
recipes/Python/366254_Generic_proxy_object_beforeafter_method/recipe-366254.py