If you want to return a method instead, you can create one from the function object together with the arguments passed to __get__
:
import types
class E(object):
def __get__(self,obj,cls):
def returned(*args):
print(obj.__dict__)
return types.MethodType(returned, obj, cls)
However, it's not totally clear what this gains you. If just returning a function already works, why do you need it to be a "real" method?