This method resolves whatever is passed: a string, a
        bound or unbound method, a function, to make it a
        function. This makes internal handling of setter and getter
        uniform and easier.

def _resolve_to_func(self, what):
        """This method resolves whatever is passed: a string, a
        bound or unbound method, a function, to make it a
        function. This makes internal handling of setter and getter
        uniform and easier."""
        if isinstance(what, str):
            what = getattr(Adapter._get_property(self), what)

        # makes it an unbounded function if needed
        if type(what) == types.MethodType:
            what = what.__func__

        if not type(what) == types.FunctionType:
            raise TypeError("Expected a method name, a method or a function")
        return what