def resolve(<EOL>self, expr, name,<EOL>safe=DEFAULT_SAFE, tostr=DEFAULT_TOSTR, scope=DEFAULT_SCOPE,<EOL>besteffort=DEFAULT_BESTEFFORT<EOL>):
resolver = None<EOL>if name is None:<EOL><INDENT>name = self.default<EOL><DEDENT>resolver = self[name]<EOL>result = resolver(<EOL>expr=expr,<EOL>safe=safe, tostr=tostr, scope=scope, besteffort=besteffort<EOL>)<EOL>return result<EOL>
Resolve an expression with possibly a dedicated expression resolvers.

        :param str name: expression resolver registered name. Default is the
            first registered expression resolver.
        :param bool safe: if True (Default), resolve in a safe context
            (without I/O).
        :param bool tostr: if True (False by default), transform the result into
            a string format.
        :param dict scope: scope execution resolution.
        :return: a string if tostr, otherwise, a python object.

        :raises: KeyError if no expression resolver has been registered or if
            name does not exist in expression resolvers.